public Type externalType ( Types types ) { Type t = erasure ( types ) ; if ( name == name . table . names . init && owner . hasOuterInstance ( ) ) { Type outerThisType = types . erasure ( owner . type . getEnclosingType ( ) ) ; return new MethodType ( t . getParameterTypes ( ) . prepend ( outerThisType ) , t . getReturnType ( ) , t . getThrownTypes ( ) , t . tsym ) ; } else { return t ; } }
The external type of a symbol . This is the symbol s erased type except for constructors of inner classes which get the enclosing instance class added as first argument .