annotate samples/compilerbug_005.tp @ 251:2557ce4e671f

Fix a couple of compiler bugs. topenv was getting initialized in multiple places. This resulted in multiple copies of modules getting created which caused problems for macro expansion. Additionally, arguments were not being marked as declared during code generation so assigning to an argument that was not closed over generated invalid C code.
author Michael Pavone <pavone@retrodev.com>
date Fri, 11 Apr 2014 22:29:32 -0700
parents ba032565c7a5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
65
b4190db72288 Add sample for bug triggered by accessing a lambda-defined message in variable style
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #{
b4190db72288 Add sample for bug triggered by accessing a lambda-defined message in variable style
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 foo <- { "foobar" }
69
ba032565c7a5 Fix handling of variable style access to self and parent object messages defined with lambdas. Improve test case for this bug to include parent object access as well as self object access.
Mike Pavone <pavone@retrodev.com>
parents: 65
diff changeset
3 bar <- #{
ba032565c7a5 Fix handling of variable style access to self and parent object messages defined with lambdas. Improve test case for this bug to include parent object access as well as self object access.
Mike Pavone <pavone@retrodev.com>
parents: 65
diff changeset
4 baz <- {
ba032565c7a5 Fix handling of variable style access to self and parent object messages defined with lambdas. Improve test case for this bug to include parent object access as well as self object access.
Mike Pavone <pavone@retrodev.com>
parents: 65
diff changeset
5 print: foo
ba032565c7a5 Fix handling of variable style access to self and parent object messages defined with lambdas. Improve test case for this bug to include parent object access as well as self object access.
Mike Pavone <pavone@retrodev.com>
parents: 65
diff changeset
6 }
ba032565c7a5 Fix handling of variable style access to self and parent object messages defined with lambdas. Improve test case for this bug to include parent object access as well as self object access.
Mike Pavone <pavone@retrodev.com>
parents: 65
diff changeset
7 }
65
b4190db72288 Add sample for bug triggered by accessing a lambda-defined message in variable style
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 main <- {
b4190db72288 Add sample for bug triggered by accessing a lambda-defined message in variable style
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 print: foo
69
ba032565c7a5 Fix handling of variable style access to self and parent object messages defined with lambdas. Improve test case for this bug to include parent object access as well as self object access.
Mike Pavone <pavone@retrodev.com>
parents: 65
diff changeset
10 bar baz
65
b4190db72288 Add sample for bug triggered by accessing a lambda-defined message in variable style
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 }
b4190db72288 Add sample for bug triggered by accessing a lambda-defined message in variable style
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 }