diff --git a/src/WattleScript.Interpreter/Tree/GeneratedClosure.cs b/src/WattleScript.Interpreter/Tree/GeneratedClosure.cs index 23eabaa1..996484f1 100644 --- a/src/WattleScript.Interpreter/Tree/GeneratedClosure.cs +++ b/src/WattleScript.Interpreter/Tree/GeneratedClosure.cs @@ -61,7 +61,7 @@ public void ResolveScope(ScriptLoadingContext lcontext, Action !x.Flags.HasFlag(MemberModifierFlags.Static))) { + if (field.Expr == null) + { + continue; + } + field.Expr.CompilePossibleLiteral(bc); sym["table"].Compile(bc); bc.Emit_IndexSet(0, 0, field.Name, false, false, true); diff --git a/src/WattleScript.Tests/EndToEnd/CLike/SyntaxCLike/Classes/30-relaxed-field-rhs.lua b/src/WattleScript.Tests/EndToEnd/CLike/SyntaxCLike/Classes/30-relaxed-field-rhs.lua new file mode 100644 index 00000000..775a7b6a --- /dev/null +++ b/src/WattleScript.Tests/EndToEnd/CLike/SyntaxCLike/Classes/30-relaxed-field-rhs.lua @@ -0,0 +1,18 @@ +class C { + private a, b, c + p2 + + C() { + this.a = 2 + this.p2 = 20 + } + + f2() { + print(this.a) + } +} + +c = new C() +print(c.a) +c.f2() +print(c.p2) \ No newline at end of file diff --git a/src/WattleScript.Tests/EndToEnd/CLike/SyntaxCLike/Classes/30-relaxed-field-rhs.txt b/src/WattleScript.Tests/EndToEnd/CLike/SyntaxCLike/Classes/30-relaxed-field-rhs.txt new file mode 100644 index 00000000..3ad7ee60 --- /dev/null +++ b/src/WattleScript.Tests/EndToEnd/CLike/SyntaxCLike/Classes/30-relaxed-field-rhs.txt @@ -0,0 +1,3 @@ +nil +2 +20 \ No newline at end of file