From fd43799c6ee42ff85ef540a3b6006763ae93a041 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 17 Jun 2015 18:27:01 +0300 Subject: [PATCH] Use original descriptor when working with errors in KotlinSignature Otherwise enhanced version are treated differently --- .../components/TraceBasedExternalSignatureResolver.java | 2 +- .../kotlin/jvm/compiler/ExpectedLoadErrorsUtil.java | 4 ++-- .../load/java/descriptors/JavaPropertyDescriptor.java | 8 +++++--- .../java/lazy/descriptors/LazyJavaClassMemberScope.kt | 2 +- .../load/java/lazy/descriptors/LazyJavaMemberScope.kt | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/TraceBasedExternalSignatureResolver.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/TraceBasedExternalSignatureResolver.java index 767a0eaae20..9fa7cfa7d22 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/TraceBasedExternalSignatureResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/TraceBasedExternalSignatureResolver.java @@ -132,6 +132,6 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes @Override public void reportSignatureErrors(@NotNull CallableMemberDescriptor descriptor, @NotNull List signatureErrors) { - trace.record(JavaBindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS, descriptor, signatureErrors); + trace.record(JavaBindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS, descriptor.getOriginal(), signatureErrors); } } \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/ExpectedLoadErrorsUtil.java b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/ExpectedLoadErrorsUtil.java index cdf983a252a..b982e1a93e2 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/ExpectedLoadErrorsUtil.java +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/ExpectedLoadErrorsUtil.java @@ -90,7 +90,7 @@ public class ExpectedLoadErrorsUtil { //noinspection ConstantConditions List errors = Arrays.asList(error.split("\\|")); - map.put(descriptor, errors); + map.put(descriptor.getOriginal(), errors); return null; } @@ -113,7 +113,7 @@ public class ExpectedLoadErrorsUtil { Collection descriptors = bindingContext.getKeys(JavaBindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS); for (DeclarationDescriptor descriptor : descriptors) { List errors = bindingContext.get(JavaBindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS, descriptor); - result.put(descriptor, errors); + result.put(descriptor.getOriginal(), errors); } return result; diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java index 1b15a7b1ddf..5bcfa77bde4 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java @@ -33,9 +33,10 @@ public class JavaPropertyDescriptor extends PropertyDescriptorImpl implements Ja @NotNull Visibility visibility, boolean isVar, @NotNull Name name, - @NotNull SourceElement source + @NotNull SourceElement source, + @Nullable PropertyDescriptor original ) { - super(containingDeclaration, null, annotations, Modality.FINAL, visibility, isVar, name, Kind.DECLARATION, source); + super(containingDeclaration, original, annotations, Modality.FINAL, visibility, isVar, name, Kind.DECLARATION, source); } @Override @@ -56,7 +57,8 @@ public class JavaPropertyDescriptor extends PropertyDescriptorImpl implements Ja getVisibility(), isVar(), getName(), - getSource() + getSource(), + getOriginal() ); assert getGetter() == null : "Field must not have a getter: " + this; assert getSetter() == null : "Field must not have a setter: " + this; diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt index dc7734a8b68..90951433e91 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt @@ -104,7 +104,7 @@ public class LazyJavaClassMemberScope( val propertyDescriptor = JavaPropertyDescriptor( getContainingDeclaration(), annotations, method.getVisibility(), - /* isVar = */ false, method.getName(), c.sourceElementFactory.source(method) + /* isVar = */ false, method.getName(), c.sourceElementFactory.source(method), /* original */ null ) // default getter is necessary because there is no real field in annotation diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaMemberScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaMemberScope.kt index f14ee7d8ae6..30b7914a38a 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaMemberScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaMemberScope.kt @@ -276,7 +276,7 @@ public abstract class LazyJavaMemberScope( val propertyName = field.getName() return JavaPropertyDescriptor(containingDeclaration, annotations, visibility, isVar, propertyName, - c.sourceElementFactory.source(field)) + c.sourceElementFactory.source(field), /* original = */ null) } private fun getPropertyType(field: JavaField, annotations: Annotations): JetType {