Minor. Covariantly override ClassDescriptor.original

This commit is contained in:
Denis Zharkov
2016-03-28 16:20:13 +03:00
parent 5056c43975
commit 816f14a927
4 changed files with 7 additions and 3 deletions
@@ -59,7 +59,7 @@ interface ExpressionReceiver : ReceiverValue {
if (referenceExpression != null) { if (referenceExpression != null) {
val descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, referenceExpression) val descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, referenceExpression)
if (descriptor is ClassDescriptor) { if (descriptor is ClassDescriptor) {
return ThisExpressionClassReceiver(descriptor.original as ClassDescriptor, expression, type) return ThisExpressionClassReceiver(descriptor.original, expression, type)
} }
} }
else if (expression is KtSuperExpression) { else if (expression is KtSuperExpression) {
@@ -103,4 +103,8 @@ public interface ClassDescriptor extends ClassifierDescriptor, MemberDescriptor,
@ReadOnly @ReadOnly
@NotNull @NotNull
List<TypeParameterDescriptor> getDeclaredTypeParameters(); List<TypeParameterDescriptor> getDeclaredTypeParameters();
@NotNull
@Override
ClassDescriptor getOriginal();
} }
@@ -65,7 +65,7 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
@NotNull @NotNull
@Override @Override
public DeclarationDescriptorWithSource getOriginal() { public ClassDescriptor getOriginal() {
return this; return this;
} }
@@ -173,7 +173,7 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor {
@NotNull @NotNull
@Override @Override
public DeclarationDescriptorWithSource getOriginal() { public ClassDescriptor getOriginal() {
return original.getOriginal(); return original.getOriginal();
} }