fork download
  1. class Outer {
  2. var outerValue: String = "I'm the outer value"
  3.  
  4. // Non-static inner class
  5. class Inner
  6. {
  7. function showOuterValue(): String
  8. {
  9. return "Inner sees: ${outerValue}"
  10. }
  11. }
  12. }
  13.  
  14. // Test runner
  15. function main()
  16. {
  17. var outer = new Outer()
  18. var inner = outer.createInner()
  19. print(inner.showOuterValue()) // Should access outer's value
  20.  
  21. var staticInner = Outer.createStaticInner()
  22. print(staticInner.greet()) // Static inner class method
  23.  
  24. // Direct access to non-static inner
  25. var directInner = new Outer().new Inner()
  26. print(directInner.showOuterValue())
  27. }
Success #stdin #stdout #stderr 3.41s 168656KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
gw.lang.parser.exceptions.ParseResultsException: prog.gosu

Errors: 

No function descriptor found for function, createInner, on class, Outer [line:18 col:15] in
line 17:   var outer = new Outer()
line 18:   var inner = outer.createInner()
line 19:   print(inner.showOuterValue())   // Should access outer's value
Line Number: 18  Column: 15

Could not resolve symbol for : inner [line:19 col:9] in
line 18:   var inner = outer.createInner()
line 19:   print(inner.showOuterValue())   // Should access outer's value
line 20:  
Expected Type: Object
Line Number: 19  Column: 9

No function descriptor found for function, createStaticInner, on class, Type<Outer> [line:21 col:21] in
line 20: 
line 21:   var staticInner = Outer.createStaticInner()
line 22:   print(staticInner.greet())      // Static inner class method
Line Number: 21  Column: 21

Could not resolve symbol for : staticInner [line:22 col:9] in
line 21:   var staticInner = Outer.createStaticInner()
line 22:   print(staticInner.greet())      // Static inner class method
line 23:  
Expected Type: Object
Line Number: 22  Column: 9

No property descriptor found for property, new, on class, _nopackage_.prog.Outer [line:25 col:21] in
line 24:   // Direct access to non-static inner
line 25:   var directInner = new Outer().new Inner()
line 26:   print(directInner.showOuterValue())
Line Number: 25  Column: 21

No function defined for Inner. [line:25 col:37] in
line 24:   // Direct access to non-static inner
line 25:   var directInner = new Outer().new Inner()
line 26:   print(directInner.showOuterValue())
Line Number: 25  Column: 37

Could not resolve symbol for : directInner [line:26 col:9] in
line 25:   var directInner = new Outer().new Inner()
line 26:   print(directInner.showOuterValue())
line 27: } 
Expected Type: Object
Line Number: 26  Column: 9



Warnings: 

Improper use of keyword, outer [line:17 col:7] in
line 16: {
line 17:   var outer = new Outer()
line 18:   var inner = outer.createInner()
Line Number: 17  Column: 7


	at gw.internal.gosu.parser.ParserBase.verifyParsedElement(ParserBase.java:292)
	at gw.internal.gosu.parser.ParserBase.verifyParsedElement(ParserBase.java:263)
	at gw.internal.gosu.parser.GosuClassParser.parseDefinitions(GosuClassParser.java:475)
	at gw.internal.gosu.parser.GosuClass.compileDefinitionsIfNeeded(GosuClass.java:1551)
	at gw.internal.gosu.parser.GosuClass.compileDefinitionsIfNeeded(GosuClass.java:1494)
	at gw.internal.gosu.parser.GosuClass.isValid(GosuClass.java:925)
	at gw.internal.gosu.parser.GosuProgram_Proxy.isValid(gw.internal.gosu.parser.GosuProgram_Proxy:2)
	at gw.internal.gosu.parser.GosuProgramParser.parseExpressionOrProgram(GosuProgramParser.java:229)
	at gw.lang.Gosu.runWithFile(Gosu.java:621)
	at gw.lang.Gosu.start(Gosu.java:140)
	at gw.lang.Gosu.main(Gosu.java:70)