- clean to green
- injectors regenerated
This commit is contained in:
Alex Tkachman
2012-09-23 14:36:29 +02:00
parent dfba534e2e
commit 4768db3b56
4 changed files with 29 additions and 35 deletions
@@ -77,7 +77,6 @@ public class InjectorForJavaDescriptorResolver {
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
javaTypeTransformer.setResolver(javaDescriptorResolver);
javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver);
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
javaBridgeConfiguration.init();
@@ -75,7 +75,6 @@ public class InjectorForJavaSemanticServices {
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
javaTypeTransformer.setResolver(javaDescriptorResolver);
javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver);
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
javaBridgeConfiguration.init();
@@ -214,7 +214,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
javaTypeTransformer.setResolver(javaDescriptorResolver);
javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver);
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
moduleConfiguration.init();
@@ -47,23 +47,14 @@ import java.util.List;
*/
public class JavaDescriptorSignatureResolver {
@NotNull
private JavaDescriptorResolver javaDescriptorResolver;
@NotNull
private JavaSemanticServices semanticServices;
@Inject
public void setJavaDescriptorResolver(@NotNull JavaDescriptorResolver javaDescriptorResolver) {
this.javaDescriptorResolver = javaDescriptorResolver;
}
@Inject
public void setJavaSemanticServices(@NotNull JavaSemanticServices javaSemanticServices) {
this.semanticServices = javaSemanticServices;
}
private enum TypeParameterDescriptorOrigin {
JAVA,
KOTLIN,
@@ -77,24 +68,22 @@ public class JavaDescriptorSignatureResolver {
final PsiTypeParameter psiTypeParameter;
@Nullable
private final List<JetType> upperBoundsForKotlin;
@Nullable
private final List<JetType> lowerBoundsForKotlin;
private TypeParameterDescriptorInitialization(@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter) {
this.origin = TypeParameterDescriptorOrigin.JAVA;
this.descriptor = descriptor;
this.psiTypeParameter = psiTypeParameter;
this.upperBoundsForKotlin = null;
this.lowerBoundsForKotlin = null;
}
private TypeParameterDescriptorInitialization(@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter,
List<JetType> upperBoundsForKotlin, List<JetType> lowerBoundsForKotlin) {
private TypeParameterDescriptorInitialization(
@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter,
List<JetType> upperBoundsForKotlin
) {
this.origin = TypeParameterDescriptorOrigin.KOTLIN;
this.descriptor = descriptor;
this.psiTypeParameter = psiTypeParameter;
this.upperBoundsForKotlin = upperBoundsForKotlin;
this.lowerBoundsForKotlin = lowerBoundsForKotlin;
}
}
@@ -137,7 +126,6 @@ public class JavaDescriptorSignatureResolver {
}
List<JetType> upperBounds = new ArrayList<JetType>();
List<JetType> lowerBounds = new ArrayList<JetType>();
@Override
public JetSignatureVisitor visitClassBound() {
@@ -165,7 +153,7 @@ public class JavaDescriptorSignatureResolver {
@Override
public void visitFormalTypeParameterEnd() {
PsiTypeParameter psiTypeParameter = getPsiTypeParameterByName(psiOwner, name);
TypeParameterDescriptorInitialization typeParameterDescriptorInitialization = new TypeParameterDescriptorInitialization(typeParameterDescriptor, psiTypeParameter, upperBounds, lowerBounds);
TypeParameterDescriptorInitialization typeParameterDescriptorInitialization = new TypeParameterDescriptorInitialization(typeParameterDescriptor, psiTypeParameter, upperBounds);
done(typeParameterDescriptorInitialization);
}
@@ -221,7 +209,7 @@ public class JavaDescriptorSignatureResolver {
}
/**
* @see #resolveMethodTypeParametersFromJetSignature(String, com.intellij.psi.PsiMethod, org.jetbrains.jet.lang.descriptors.DeclarationDescriptor)
* @see #resolveMethodTypeParametersFromJetSignature(String, PsiMethod, DeclarationDescriptor)
*/
private List<TypeParameterDescriptorInitialization> resolveClassTypeParametersFromJetSignature(String jetSignature,
final PsiClass clazz, final ClassDescriptor classDescriptor) {
@@ -244,7 +232,10 @@ public class JavaDescriptorSignatureResolver {
}
private List<TypeParameterDescriptorInitialization> makeUninitializedTypeParameters(@NotNull DeclarationDescriptor containingDeclaration, @NotNull PsiTypeParameter[] typeParameters) {
private static List<TypeParameterDescriptorInitialization> makeUninitializedTypeParameters(
@NotNull DeclarationDescriptor containingDeclaration,
@NotNull PsiTypeParameter[] typeParameters
) {
List<TypeParameterDescriptorInitialization> result = Lists.newArrayList();
for (PsiTypeParameter typeParameter : typeParameters) {
TypeParameterDescriptorInitialization typeParameterDescriptor = makeUninitializedTypeParameter(containingDeclaration, typeParameter);
@@ -254,7 +245,10 @@ public class JavaDescriptorSignatureResolver {
}
@NotNull
private TypeParameterDescriptorInitialization makeUninitializedTypeParameter(@NotNull DeclarationDescriptor containingDeclaration, @NotNull PsiTypeParameter psiTypeParameter) {
private static TypeParameterDescriptorInitialization makeUninitializedTypeParameter(
@NotNull DeclarationDescriptor containingDeclaration,
@NotNull PsiTypeParameter psiTypeParameter
) {
TypeParameterDescriptorImpl typeParameterDescriptor = TypeParameterDescriptorImpl.createForFurtherModification(
containingDeclaration,
Collections.<AnnotationDescriptor>emptyList(), // TODO
@@ -269,12 +263,13 @@ public class JavaDescriptorSignatureResolver {
private void initializeTypeParameter(TypeParameterDescriptorInitialization typeParameter, TypeVariableResolver typeVariableByPsiResolver) {
TypeParameterDescriptorImpl typeParameterDescriptor = typeParameter.descriptor;
if (typeParameter.origin == TypeParameterDescriptorOrigin.KOTLIN) {
List<?> upperBounds = typeParameter.upperBoundsForKotlin;
if (upperBounds.size() == 0){
final List<JetType> upperBoundsForKotlin = typeParameter.upperBoundsForKotlin;
assert upperBoundsForKotlin != null;
if (upperBoundsForKotlin.size() == 0){
typeParameterDescriptor.addUpperBound(JetStandardClasses.getNullableAnyType());
}
else {
for (JetType upperBound : typeParameter.upperBoundsForKotlin) {
for (JetType upperBound : upperBoundsForKotlin) {
typeParameterDescriptor.addUpperBound(upperBound);
}
}
@@ -299,7 +294,7 @@ public class JavaDescriptorSignatureResolver {
}
void initializeTypeParameters(List<TypeParameterDescriptorInitialization> typeParametersInitialization, @NotNull DeclarationDescriptor typeParametersOwner, @NotNull String context) {
List<TypeParameterDescriptor> prevTypeParameters = new ArrayList<TypeParameterDescriptor>();
List<TypeParameterDescriptor> prevTypeParameters = Lists.newArrayList();
List<TypeParameterDescriptor> typeParameters = Lists.newArrayList();
for (TypeParameterDescriptorInitialization typeParameterDescriptor : typeParametersInitialization) {
@@ -331,15 +326,18 @@ public class JavaDescriptorSignatureResolver {
@NotNull DeclarationDescriptor functionDescriptor) {
List<TypeParameterDescriptorInitialization> typeParametersIntialization;
final PsiMethod psiMethod = method.getPsiMethod();
if (method.getJetMethod().typeParameters().length() > 0) {
typeParametersIntialization = resolveMethodTypeParametersFromJetSignature(
method.getJetMethod().typeParameters(), method.getPsiMethod(), functionDescriptor);
method.getJetMethod().typeParameters(), psiMethod, functionDescriptor);
}
else {
typeParametersIntialization = makeUninitializedTypeParameters(functionDescriptor, method.getPsiMethod().getTypeParameters());
typeParametersIntialization = makeUninitializedTypeParameters(functionDescriptor, psiMethod.getTypeParameters());
}
String context = "method " + method.getName() + " in class " + method.getPsiMethod().getContainingClass().getQualifiedName();
final PsiClass psiMethodContainingClass = psiMethod.getContainingClass();
assert psiMethodContainingClass != null;
String context = "method " + method.getName() + " in class " + psiMethodContainingClass.getQualifiedName();
initializeTypeParameters(typeParametersIntialization, functionDescriptor, context);
List<TypeParameterDescriptor> typeParameters = Lists.newArrayListWithCapacity(typeParametersIntialization.size());
@@ -352,18 +350,17 @@ public class JavaDescriptorSignatureResolver {
}
/**
* @see #resolveClassTypeParametersFromJetSignature(String, com.intellij.psi.PsiClass, org.jetbrains.jet.lang.descriptors.ClassDescriptor)
* @see #resolveClassTypeParametersFromJetSignature(String, PsiClass, ClassDescriptor)
*/
private List<TypeParameterDescriptorInitialization> resolveMethodTypeParametersFromJetSignature(String jetSignature,
final PsiMethod method, final DeclarationDescriptor functionDescriptor)
{
String context = "method " + method.getName() + " in class " + method.getContainingClass().getQualifiedName();
final PsiClass methodContainingClass = method.getContainingClass();
assert methodContainingClass != null;
String context = "method " + method.getName() + " in class " + methodContainingClass.getQualifiedName();
JetSignatureTypeParametersVisitor jetSignatureTypeParametersVisitor = new JetSignatureTypeParametersVisitor(functionDescriptor, method, context);
new JetSignatureReader(jetSignature).acceptFormalTypeParametersOnly(jetSignatureTypeParametersVisitor);
return jetSignatureTypeParametersVisitor.r;
}
}