Skip alternative signatures in PLATFORM_TYPES mode, but use parameter names
This commit is contained in:
+1
-2
@@ -22,7 +22,6 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.psi.JetProperty;
|
import org.jetbrains.jet.lang.psi.JetProperty;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaPackage;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaField;
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaField;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
@@ -41,7 +40,7 @@ public class AlternativeFieldSignatureData extends ElementAlternativeSignatureDa
|
|||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
boolean isVar
|
boolean isVar
|
||||||
) {
|
) {
|
||||||
String signature = JavaPackage.getPLATFORM_TYPES() ? null : SignaturesUtil.getKotlinSignature(externalAnnotationResolver, field);
|
String signature = SignaturesUtil.getKotlinSignature(externalAnnotationResolver, field);
|
||||||
|
|
||||||
if (signature == null) {
|
if (signature == null) {
|
||||||
setAnnotated(false);
|
setAnnotated(false);
|
||||||
|
|||||||
+14
-2
@@ -28,7 +28,6 @@ import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.ValueParameterDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.impl.ValueParameterDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaPackage;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils;
|
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaMember;
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaMember;
|
||||||
@@ -65,7 +64,7 @@ public class AlternativeMethodSignatureData extends ElementAlternativeSignatureD
|
|||||||
@NotNull List<TypeParameterDescriptor> methodTypeParameters,
|
@NotNull List<TypeParameterDescriptor> methodTypeParameters,
|
||||||
boolean hasSuperMethods
|
boolean hasSuperMethods
|
||||||
) {
|
) {
|
||||||
String signature = JavaPackage.getPLATFORM_TYPES() ? null : SignaturesUtil.getKotlinSignature(externalAnnotationResolver, methodOrConstructor);
|
String signature = SignaturesUtil.getKotlinSignature(externalAnnotationResolver, methodOrConstructor);
|
||||||
|
|
||||||
if (signature == null) {
|
if (signature == null) {
|
||||||
setAnnotated(false);
|
setAnnotated(false);
|
||||||
@@ -102,6 +101,19 @@ public class AlternativeMethodSignatureData extends ElementAlternativeSignatureD
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<ValueParameterDescriptor> updateNames(
|
||||||
|
List<ValueParameterDescriptor> originalValueParameters,
|
||||||
|
List<ValueParameterDescriptor> altValueParameters
|
||||||
|
) {
|
||||||
|
List<ValueParameterDescriptor> result = new ArrayList<ValueParameterDescriptor>(originalValueParameters.size());
|
||||||
|
for (int i = 0; i < originalValueParameters.size(); i++) {
|
||||||
|
ValueParameterDescriptor originalValueParameter = originalValueParameters.get(i);
|
||||||
|
ValueParameterDescriptor altValueParameter = altValueParameters.get(i);
|
||||||
|
result.add(originalValueParameter.copy(originalValueParameter.getContainingDeclaration(), altValueParameter.getName()));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private void checkParameterAndReturnTypesForOverridingMethods(
|
private void checkParameterAndReturnTypesForOverridingMethods(
|
||||||
@NotNull List<ValueParameterDescriptor> valueParameters,
|
@NotNull List<ValueParameterDescriptor> valueParameters,
|
||||||
@NotNull List<TypeParameterDescriptor> methodTypeParameters,
|
@NotNull List<TypeParameterDescriptor> methodTypeParameters,
|
||||||
|
|||||||
+10
@@ -25,6 +25,7 @@ import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaBindingContext;
|
import org.jetbrains.jet.lang.resolve.java.JavaBindingContext;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JavaPackage;
|
||||||
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeFieldSignatureData;
|
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeFieldSignatureData;
|
||||||
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeMethodSignatureData;
|
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeMethodSignatureData;
|
||||||
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.SignaturesPropagationData;
|
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.SignaturesPropagationData;
|
||||||
@@ -94,6 +95,12 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes
|
|||||||
returnType, typeParameters, hasSuperMethods);
|
returnType, typeParameters, hasSuperMethods);
|
||||||
|
|
||||||
if (data.isAnnotated() && !data.hasErrors()) {
|
if (data.isAnnotated() && !data.hasErrors()) {
|
||||||
|
if (JavaPackage.getPLATFORM_TYPES()) {
|
||||||
|
// We only take parameter names from the @KotlinSignature
|
||||||
|
return new AlternativeMethodSignature(returnType, receiverType,
|
||||||
|
AlternativeMethodSignatureData.updateNames(valueParameters, data.getValueParameters()),
|
||||||
|
typeParameters, Collections.<String>emptyList(), true);
|
||||||
|
}
|
||||||
return new AlternativeMethodSignature(data.getReturnType(), receiverType, data.getValueParameters(), data.getTypeParameters(),
|
return new AlternativeMethodSignature(data.getReturnType(), receiverType, data.getValueParameters(), data.getTypeParameters(),
|
||||||
Collections.<String>emptyList(), true);
|
Collections.<String>emptyList(), true);
|
||||||
}
|
}
|
||||||
@@ -113,6 +120,9 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes
|
|||||||
new AlternativeFieldSignatureData(externalAnnotationResolver, field, returnType, project, isVar);
|
new AlternativeFieldSignatureData(externalAnnotationResolver, field, returnType, project, isVar);
|
||||||
|
|
||||||
if (data.isAnnotated() && !data.hasErrors()) {
|
if (data.isAnnotated() && !data.hasErrors()) {
|
||||||
|
if (JavaPackage.getPLATFORM_TYPES()) {
|
||||||
|
return new AlternativeFieldSignature(returnType, null);
|
||||||
|
}
|
||||||
return new AlternativeFieldSignature(data.getReturnType(), null);
|
return new AlternativeFieldSignature(data.getReturnType(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user