set flag OurSyncCollections. !include once #1034831 // Gazelle 22 Function Include for Testing svoid test_leftArrowScript_objectScope(LASMultiClassLoader cl default new LASMultiClassLoader(mc())) { // Accessing an instance field S classPrefix = "scriptClasses."; embedded O runScript(S code) { var parser = enableScaffolding(new GazelleV_LeftArrowScriptParser() .classDefPrefix(classPrefix) .lasClassLoader(cl)); ret leftArrowVerbose(parser, code); } // Access instance field without "this" assertEqualsVerbose(10, runScript([[ class X { i: int <- 5 def j { i plus i } } new X, j ]])); // Make sure locally declared variables shadow fields assertEqualsVerbose(14, runScript([[ class X { i: int <- 5 def j { i: int <- 7; i plus i } } new X, j ]])); // Assign instance field without "this" assertEqualsVerbose(10, runScript([[ class X { i: int def j { i <- 10; this } } new X, j, i ]])); // Call instance method without "this" assertEqualsVerbose(2, runScript([[ class X { i: int <- 1 def yo { i <- i plus 1 } def j { yo; i } } new X, j ]])); }