public static boolean isSyntheticInit ( JCTree stat ) { if ( stat . hasTag ( EXEC ) ) { JCExpressionStatement exec = ( JCExpressionStatement ) stat ; if ( exec . expr . hasTag ( ASSIGN ) ) { JCAssign assign = ( JCAssign ) exec . expr ; if ( assign . lhs . hasTag ( SELECT ) ) { JCFieldAccess select = ( JCFieldAccess ) assign . lhs ; if ( select . sym != null && ( select . sym . flags ( ) & SYNTHETIC ) != 0 ) { Name selected = name ( select . selected ) ; if ( selected != null && selected == selected . table . names . _this ) return true ; } } } } return false ; }
Is statement an initializer for a synthetic field?