@Override public void visitFormalTypeParameter(String name) { JavaSymbol.TypeVariableJavaSymbol typeVariableSymbol = new JavaSymbol.TypeVariableJavaSymbol(name, symbol); ((TypeVariableJavaType) typeVariableSymbol.type).bounds = Lists.newArrayList(); if (symbol.isTypeSymbol()) { JavaSymbol.TypeJavaSymbol typeJavaSymbol = (JavaSymbol.TypeJavaSymbol) symbol; typeJavaSymbol.typeParameters.enter(typeVariableSymbol); typeJavaSymbol.addTypeParameter((TypeVariableJavaType) typeVariableSymbol.type); } else if (symbol.isMethodSymbol()) { JavaSymbol.MethodJavaSymbol methodSymbol = (JavaSymbol.MethodJavaSymbol) symbol; methodSymbol.typeParameters.enter(typeVariableSymbol); methodSymbol.addTypeParameter((TypeVariableJavaType) typeVariableSymbol.type); } }