initialize earlier to help with string evals
[p5sagit/Devel-Declare.git] / t / early2.t
diff --git a/t/early2.t b/t/early2.t
new file mode 100644 (file)
index 0000000..750a6b5
--- /dev/null
@@ -0,0 +1,27 @@
+use strict;
+use warnings;
+use Test::More tests => 2;
+
+use Devel::Declare;
+eval q[
+    BEGIN {
+       *class = sub (&) { $_[0]->() };
+       Devel::Declare->setup_for(__PACKAGE__, {
+           class => {
+               const => sub {
+                   my ($kw, $off) = @_;
+                   $off += Devel::Declare::toke_move_past_token($off);
+                   $off += Devel::Declare::toke_skipspace($off);
+                   die unless substr(Devel::Declare::get_linestr(), $off, 1) eq '{';
+                   my $l = Devel::Declare::get_linestr();
+                   substr $l, $off + 1, 0, 'pass q[injected];' . (';' x 1000);
+                   Devel::Declare::set_linestr($l);
+               },
+           },
+       });
+    }
+    class {};
+];
+is $@, "";
+
+1;