[ https://issues.apache.org/jira/browse/GROOVY-6278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15411142#comment-15411142 ]
Paul King edited comment on GROOVY-6278 at 8/8/16 12:44 AM: ------------------------------------------------------------ If you replace {{return new Bar().x}} with {{def b = new Bar(); return b.x}}, you get: {noformat} Access to Bar#x is forbidden at line: 6, column: 29 {noformat} but only for {{CompileStatic}} not {{TypeChecked}}. So there is a partial check but in the wrong spot (currently {{StaticTypesCallSiteWriter}}). It needs to be earlier - probably within {{existsProperty}} as suggested. was (Author: paulk): If you replace {{return new Bar().x}} with {{def b = new Bar(); return b.x}}, you get: {noformat} Access to Bar#x is forbidden at line: 6, column: 29 {noformat} but only for {{CompileStatic}} not {{TypeChecked}}. So there is a partial check but in the wrong spot (currently {{StaticTypesCallSiteWriter}}). It needs to be earlier. > private super class members are not ignored > ------------------------------------------- > > Key: GROOVY-6278 > URL: https://issues.apache.org/jira/browse/GROOVY-6278 > Project: Groovy > Issue Type: Bug > Components: Static compilation, Static Type Checker > Affects Versions: 2.3.0 > Reporter: Jochen Theodorou > > {code:Java} > class Foo { private x=2 } > class Bar extends Foo{} > @groovy.transform.CompileStatic > def foo() { > return new Bar().x > } > {code} > the logic in existsProperty finds Foo#x, even though it is private. Groovy > does not allow access to super class private members. Compilation should fail > here in static compilation mode as well as with the type checker. -- This message was sent by Atlassian JIRA (v6.3.4#6332)