private static List<JavaType> addImplicitOuterClassParameter(List<JavaType> parameterTypes, JavaSymbol.TypeJavaSymbol constructorIdentifierSymbol) { List<JavaType> result = parameterTypes; JavaSymbol owner = constructorIdentifierSymbol.owner(); if (!owner.isPackageSymbol() && !constructorIdentifierSymbol.isStatic()) { result = ImmutableList.<JavaType>builder().add(owner.enclosingClass().type).addAll(parameterTypes).build(); } return result; }
private static List<JavaType> addImplicitOuterClassParameter(List<JavaType> parameterTypes, JavaSymbol.TypeJavaSymbol constructorIdentifierSymbol) { List<JavaType> result = parameterTypes; JavaSymbol owner = constructorIdentifierSymbol.owner(); if (!owner.isPackageSymbol() && !constructorIdentifierSymbol.isStatic()) { result = ImmutableList.<JavaType>builder().add(owner.enclosingClass().type).addAll(parameterTypes).build(); } return result; }
private Resolution findConstructor(Env env, JavaType site, List<JavaType> argTypes, List<JavaType> typeParams) { List<JavaType> newArgTypes = argTypes; JavaSymbol owner = site.symbol.owner(); if (!owner.isPackageSymbol() && !site.symbol.isStatic()) { // JLS8 - 8.8.1 & 8.8.9 : constructors of inner class have an implicit first arg of its directly enclosing class type newArgTypes = ImmutableList.<JavaType>builder().add(owner.enclosingClass().type).addAll(argTypes).build(); } return findMethodByStrictThenLooseInvocation(env, site, site, CONSTRUCTOR_NAME, newArgTypes, typeParams); }
if (!symbol.isStatic()) {
if (!symbol.isStatic()) {
symbol.returnType = returnType.symbol; } else if (!symbol.enclosingClass().isStatic()) { JavaSymbol owner = symbol.enclosingClass().owner(); if (!owner.isPackageSymbol()) {
symbol.returnType = returnType.symbol; } else if (!symbol.enclosingClass().isStatic()) { JavaSymbol owner = symbol.enclosingClass().owner(); if (!owner.isPackageSymbol()) {
private Resolution findConstructor(Env env, JavaType site, List<JavaType> argTypes, List<JavaType> typeParams) { List<JavaType> newArgTypes = argTypes; JavaSymbol owner = site.symbol.owner(); if (!owner.isPackageSymbol() && !site.symbol.isStatic()) { // JLS8 - 8.8.1 & 8.8.9 : constructors of inner class have an implicit first arg of its directly enclosing class type newArgTypes = ImmutableList.<JavaType>builder().add(owner.enclosingClass().type).addAll(argTypes).build(); } return findMethodByStrictThenLooseInvocation(env, site, site, CONSTRUCTOR_NAME, newArgTypes, typeParams); }