File tree Expand file tree Collapse file tree 12 files changed +108
-5
lines changed
Expand file tree Collapse file tree 12 files changed +108
-5
lines changed Original file line number Diff line number Diff line change 11---
22expected_error_type: none
33---
4+ var a = "outer";
5+ {
6+ fun foo() {
7+ print a;
8+ }
9+
10+ foo(); // expect: outer
11+ var a = "inner";
12+ foo(); // expect: outer
13+ }
Original file line number Diff line number Diff line change 11---
22expected_error_type: none
33---
4+ fun global() {
5+ print "global";
6+ }
7+
8+ {
9+ fun f() {
10+ global();
11+ }
12+
13+ f();
14+ fun global() {
15+ print "local";
16+ }
17+ f();
18+ }
Original file line number Diff line number Diff line change 11---
22expected_error_type: none
33---
4+ // Multiple Nested Functions with Shadowing
5+ var x = "global";
6+
7+ fun outer() {
8+ var x = "outer";
9+
10+ fun middle() {
11+ fun inner() {
12+ print x; // Should capture "outer", not "global" or "inner"
13+ }
14+
15+ inner();
16+ var x = "middle";
17+ inner(); // Should still print "outer"
18+ }
19+
20+ middle();
21+ }
22+
23+ outer();
Original file line number Diff line number Diff line change 11---
22expected_error_type: none
33---
4+ // Function Returning a Function
5+ var count = 0;
6+
7+ {
8+ fun makeCounter() {
9+ fun counter() {
10+ count = count + 1;
11+ print count;
12+ }
13+ return counter;
14+ }
15+
16+ var counter1 = makeCounter();
17+ counter1(); // Should print 1
18+ counter1(); // Should print 2
19+
20+ var count = 0;
21+ counter1(); // Should print 3
22+ }
Original file line number Diff line number Diff line change 11---
22expected_error_type: none
33---
4+ var a = "value";
5+ var a = a;
6+ print a; // expect: value
Original file line number Diff line number Diff line change 11---
22expected_error_type: none
33---
4+ var a = "outer";
5+ {
6+ var a = a; // Error at 'a': Can't read local variable in its own initializer.
7+ }
Original file line number Diff line number Diff line change 11---
22expected_error_type: none
33---
4+ if (false) {
5+ print notDefined;
6+ }
7+
8+ print "ok"; // expect: ok
Original file line number Diff line number Diff line change 11---
2- expected_error_type: none
2+ expected_error_type: compile
33---
4+ print a; // expect: compile error
5+ var a = "value";
6+ print a; // expect: value
Original file line number Diff line number Diff line change 11---
2- expected_error_type: none
2+ expected_error_type: compile
33---
4+ {
5+ var a = "value";
6+ var a = "other"; // Error at 'a': Already a variable with this name in this scope.
7+ }
Original file line number Diff line number Diff line change 11---
2- expected_error_type: none
2+ expected_error_type: compile
33---
4+ fun foo(a) {
5+ var a; // Error at 'a': Already a variable with this name in this scope.
6+ }
You can’t perform that action at this time.
0 commit comments