cleanup
- clean to green - injectors regenerated
This commit is contained in:
@@ -77,7 +77,6 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
|
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
|
||||||
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
||||||
|
|
||||||
javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
|
||||||
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
|
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
|
||||||
|
|
||||||
javaBridgeConfiguration.init();
|
javaBridgeConfiguration.init();
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ public class InjectorForJavaSemanticServices {
|
|||||||
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
|
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
|
||||||
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
||||||
|
|
||||||
javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
|
||||||
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
|
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
|
||||||
|
|
||||||
javaBridgeConfiguration.init();
|
javaBridgeConfiguration.init();
|
||||||
|
|||||||
@@ -214,7 +214,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
|
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
|
||||||
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
javaTypeTransformer.setResolver(javaDescriptorResolver);
|
||||||
|
|
||||||
javaDescriptorSignatureResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
|
||||||
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
|
javaDescriptorSignatureResolver.setJavaSemanticServices(javaSemanticServices);
|
||||||
|
|
||||||
moduleConfiguration.init();
|
moduleConfiguration.init();
|
||||||
|
|||||||
+29
-32
@@ -47,23 +47,14 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class JavaDescriptorSignatureResolver {
|
public class JavaDescriptorSignatureResolver {
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private JavaDescriptorResolver javaDescriptorResolver;
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JavaSemanticServices semanticServices;
|
private JavaSemanticServices semanticServices;
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setJavaDescriptorResolver(@NotNull JavaDescriptorResolver javaDescriptorResolver) {
|
|
||||||
this.javaDescriptorResolver = javaDescriptorResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setJavaSemanticServices(@NotNull JavaSemanticServices javaSemanticServices) {
|
public void setJavaSemanticServices(@NotNull JavaSemanticServices javaSemanticServices) {
|
||||||
this.semanticServices = javaSemanticServices;
|
this.semanticServices = javaSemanticServices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private enum TypeParameterDescriptorOrigin {
|
private enum TypeParameterDescriptorOrigin {
|
||||||
JAVA,
|
JAVA,
|
||||||
KOTLIN,
|
KOTLIN,
|
||||||
@@ -77,24 +68,22 @@ public class JavaDescriptorSignatureResolver {
|
|||||||
final PsiTypeParameter psiTypeParameter;
|
final PsiTypeParameter psiTypeParameter;
|
||||||
@Nullable
|
@Nullable
|
||||||
private final List<JetType> upperBoundsForKotlin;
|
private final List<JetType> upperBoundsForKotlin;
|
||||||
@Nullable
|
|
||||||
private final List<JetType> lowerBoundsForKotlin;
|
|
||||||
|
|
||||||
private TypeParameterDescriptorInitialization(@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter) {
|
private TypeParameterDescriptorInitialization(@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter) {
|
||||||
this.origin = TypeParameterDescriptorOrigin.JAVA;
|
this.origin = TypeParameterDescriptorOrigin.JAVA;
|
||||||
this.descriptor = descriptor;
|
this.descriptor = descriptor;
|
||||||
this.psiTypeParameter = psiTypeParameter;
|
this.psiTypeParameter = psiTypeParameter;
|
||||||
this.upperBoundsForKotlin = null;
|
this.upperBoundsForKotlin = null;
|
||||||
this.lowerBoundsForKotlin = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private TypeParameterDescriptorInitialization(@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter,
|
private TypeParameterDescriptorInitialization(
|
||||||
List<JetType> upperBoundsForKotlin, List<JetType> lowerBoundsForKotlin) {
|
@NotNull TypeParameterDescriptorImpl descriptor, @NotNull PsiTypeParameter psiTypeParameter,
|
||||||
|
List<JetType> upperBoundsForKotlin
|
||||||
|
) {
|
||||||
this.origin = TypeParameterDescriptorOrigin.KOTLIN;
|
this.origin = TypeParameterDescriptorOrigin.KOTLIN;
|
||||||
this.descriptor = descriptor;
|
this.descriptor = descriptor;
|
||||||
this.psiTypeParameter = psiTypeParameter;
|
this.psiTypeParameter = psiTypeParameter;
|
||||||
this.upperBoundsForKotlin = upperBoundsForKotlin;
|
this.upperBoundsForKotlin = upperBoundsForKotlin;
|
||||||
this.lowerBoundsForKotlin = lowerBoundsForKotlin;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,7 +126,6 @@ public class JavaDescriptorSignatureResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<JetType> upperBounds = new ArrayList<JetType>();
|
List<JetType> upperBounds = new ArrayList<JetType>();
|
||||||
List<JetType> lowerBounds = new ArrayList<JetType>();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JetSignatureVisitor visitClassBound() {
|
public JetSignatureVisitor visitClassBound() {
|
||||||
@@ -165,7 +153,7 @@ public class JavaDescriptorSignatureResolver {
|
|||||||
@Override
|
@Override
|
||||||
public void visitFormalTypeParameterEnd() {
|
public void visitFormalTypeParameterEnd() {
|
||||||
PsiTypeParameter psiTypeParameter = getPsiTypeParameterByName(psiOwner, name);
|
PsiTypeParameter psiTypeParameter = getPsiTypeParameterByName(psiOwner, name);
|
||||||
TypeParameterDescriptorInitialization typeParameterDescriptorInitialization = new TypeParameterDescriptorInitialization(typeParameterDescriptor, psiTypeParameter, upperBounds, lowerBounds);
|
TypeParameterDescriptorInitialization typeParameterDescriptorInitialization = new TypeParameterDescriptorInitialization(typeParameterDescriptor, psiTypeParameter, upperBounds);
|
||||||
done(typeParameterDescriptorInitialization);
|
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,
|
private List<TypeParameterDescriptorInitialization> resolveClassTypeParametersFromJetSignature(String jetSignature,
|
||||||
final PsiClass clazz, final ClassDescriptor classDescriptor) {
|
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();
|
List<TypeParameterDescriptorInitialization> result = Lists.newArrayList();
|
||||||
for (PsiTypeParameter typeParameter : typeParameters) {
|
for (PsiTypeParameter typeParameter : typeParameters) {
|
||||||
TypeParameterDescriptorInitialization typeParameterDescriptor = makeUninitializedTypeParameter(containingDeclaration, typeParameter);
|
TypeParameterDescriptorInitialization typeParameterDescriptor = makeUninitializedTypeParameter(containingDeclaration, typeParameter);
|
||||||
@@ -254,7 +245,10 @@ public class JavaDescriptorSignatureResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private TypeParameterDescriptorInitialization makeUninitializedTypeParameter(@NotNull DeclarationDescriptor containingDeclaration, @NotNull PsiTypeParameter psiTypeParameter) {
|
private static TypeParameterDescriptorInitialization makeUninitializedTypeParameter(
|
||||||
|
@NotNull DeclarationDescriptor containingDeclaration,
|
||||||
|
@NotNull PsiTypeParameter psiTypeParameter
|
||||||
|
) {
|
||||||
TypeParameterDescriptorImpl typeParameterDescriptor = TypeParameterDescriptorImpl.createForFurtherModification(
|
TypeParameterDescriptorImpl typeParameterDescriptor = TypeParameterDescriptorImpl.createForFurtherModification(
|
||||||
containingDeclaration,
|
containingDeclaration,
|
||||||
Collections.<AnnotationDescriptor>emptyList(), // TODO
|
Collections.<AnnotationDescriptor>emptyList(), // TODO
|
||||||
@@ -269,12 +263,13 @@ public class JavaDescriptorSignatureResolver {
|
|||||||
private void initializeTypeParameter(TypeParameterDescriptorInitialization typeParameter, TypeVariableResolver typeVariableByPsiResolver) {
|
private void initializeTypeParameter(TypeParameterDescriptorInitialization typeParameter, TypeVariableResolver typeVariableByPsiResolver) {
|
||||||
TypeParameterDescriptorImpl typeParameterDescriptor = typeParameter.descriptor;
|
TypeParameterDescriptorImpl typeParameterDescriptor = typeParameter.descriptor;
|
||||||
if (typeParameter.origin == TypeParameterDescriptorOrigin.KOTLIN) {
|
if (typeParameter.origin == TypeParameterDescriptorOrigin.KOTLIN) {
|
||||||
List<?> upperBounds = typeParameter.upperBoundsForKotlin;
|
final List<JetType> upperBoundsForKotlin = typeParameter.upperBoundsForKotlin;
|
||||||
if (upperBounds.size() == 0){
|
assert upperBoundsForKotlin != null;
|
||||||
|
if (upperBoundsForKotlin.size() == 0){
|
||||||
typeParameterDescriptor.addUpperBound(JetStandardClasses.getNullableAnyType());
|
typeParameterDescriptor.addUpperBound(JetStandardClasses.getNullableAnyType());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (JetType upperBound : typeParameter.upperBoundsForKotlin) {
|
for (JetType upperBound : upperBoundsForKotlin) {
|
||||||
typeParameterDescriptor.addUpperBound(upperBound);
|
typeParameterDescriptor.addUpperBound(upperBound);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -299,7 +294,7 @@ public class JavaDescriptorSignatureResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void initializeTypeParameters(List<TypeParameterDescriptorInitialization> typeParametersInitialization, @NotNull DeclarationDescriptor typeParametersOwner, @NotNull String context) {
|
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();
|
List<TypeParameterDescriptor> typeParameters = Lists.newArrayList();
|
||||||
for (TypeParameterDescriptorInitialization typeParameterDescriptor : typeParametersInitialization) {
|
for (TypeParameterDescriptorInitialization typeParameterDescriptor : typeParametersInitialization) {
|
||||||
@@ -331,15 +326,18 @@ public class JavaDescriptorSignatureResolver {
|
|||||||
@NotNull DeclarationDescriptor functionDescriptor) {
|
@NotNull DeclarationDescriptor functionDescriptor) {
|
||||||
|
|
||||||
List<TypeParameterDescriptorInitialization> typeParametersIntialization;
|
List<TypeParameterDescriptorInitialization> typeParametersIntialization;
|
||||||
|
final PsiMethod psiMethod = method.getPsiMethod();
|
||||||
if (method.getJetMethod().typeParameters().length() > 0) {
|
if (method.getJetMethod().typeParameters().length() > 0) {
|
||||||
typeParametersIntialization = resolveMethodTypeParametersFromJetSignature(
|
typeParametersIntialization = resolveMethodTypeParametersFromJetSignature(
|
||||||
method.getJetMethod().typeParameters(), method.getPsiMethod(), functionDescriptor);
|
method.getJetMethod().typeParameters(), psiMethod, functionDescriptor);
|
||||||
}
|
}
|
||||||
else {
|
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);
|
initializeTypeParameters(typeParametersIntialization, functionDescriptor, context);
|
||||||
|
|
||||||
List<TypeParameterDescriptor> typeParameters = Lists.newArrayListWithCapacity(typeParametersIntialization.size());
|
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,
|
private List<TypeParameterDescriptorInitialization> resolveMethodTypeParametersFromJetSignature(String jetSignature,
|
||||||
final PsiMethod method, final DeclarationDescriptor functionDescriptor)
|
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);
|
JetSignatureTypeParametersVisitor jetSignatureTypeParametersVisitor = new JetSignatureTypeParametersVisitor(functionDescriptor, method, context);
|
||||||
new JetSignatureReader(jetSignature).acceptFormalTypeParametersOnly(jetSignatureTypeParametersVisitor);
|
new JetSignatureReader(jetSignature).acceptFormalTypeParametersOnly(jetSignatureTypeParametersVisitor);
|
||||||
return jetSignatureTypeParametersVisitor.r;
|
return jetSignatureTypeParametersVisitor.r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user