scope test_structure_with_thisDollar0. sclass Y { sclass X { O this$0; S abc = "abc"; *(Y *this$0) {} } sclass X2 { O this$1; S abc = "abc"; *(Y *this$1) {} } } svoid test_structure_with_thisDollar0() { S s = structure(new Y.X(new Y)); assertEqualsVerbose("Y$X(this$0=Y, abc=\"abc\")", s); Y.X x = cast unstructure(s); assertTrueVerbose(x.this$0 instanceof Y); assertEqualsVerbose("abc", x.abc); // test translation from this$1 to this$0 x = (Y.X) unstructure("Y$X(this$1=Y, abc=\"abc\")"); assertTrueVerbose(x.this$0 instanceof Y); assertEqualsVerbose("abc", x.abc); // test translation from this$ß to this$1 Y.X2 x2 = cast unstructure("Y$X2(this$0=Y, abc=\"abc\")"); assertTrueVerbose(x2.this$1 instanceof Y); assertEqualsVerbose("abc", x2.abc); } end scope