From 816f14a927c220efa44e5d04e580d5ff1f597cff Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Mon, 28 Mar 2016 16:20:13 +0300 Subject: [PATCH] Minor. Covariantly override ClassDescriptor.original --- .../kotlin/resolve/scopes/receivers/ExpressionReceiver.kt | 2 +- .../src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java | 4 ++++ .../kotlin/descriptors/impl/AbstractClassDescriptor.java | 2 +- .../descriptors/impl/LazySubstitutingClassDescriptor.java | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/ExpressionReceiver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/ExpressionReceiver.kt index 47289d2b54e..85708f0dc81 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/ExpressionReceiver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/ExpressionReceiver.kt @@ -59,7 +59,7 @@ interface ExpressionReceiver : ReceiverValue { if (referenceExpression != null) { val descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, referenceExpression) if (descriptor is ClassDescriptor) { - return ThisExpressionClassReceiver(descriptor.original as ClassDescriptor, expression, type) + return ThisExpressionClassReceiver(descriptor.original, expression, type) } } else if (expression is KtSuperExpression) { diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java index 274dacb34b9..0e5cae9e0a5 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/ClassDescriptor.java @@ -103,4 +103,8 @@ public interface ClassDescriptor extends ClassifierDescriptor, MemberDescriptor, @ReadOnly @NotNull List getDeclaredTypeParameters(); + + @NotNull + @Override + ClassDescriptor getOriginal(); } diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/AbstractClassDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/AbstractClassDescriptor.java index 4c67b8ab5d6..1826bcbcf55 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/AbstractClassDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/AbstractClassDescriptor.java @@ -65,7 +65,7 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor { @NotNull @Override - public DeclarationDescriptorWithSource getOriginal() { + public ClassDescriptor getOriginal() { return this; } diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/LazySubstitutingClassDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/LazySubstitutingClassDescriptor.java index c580f56912b..dd09ba71399 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/LazySubstitutingClassDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/LazySubstitutingClassDescriptor.java @@ -173,7 +173,7 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor { @NotNull @Override - public DeclarationDescriptorWithSource getOriginal() { + public ClassDescriptor getOriginal() { return original.getOriginal(); }