From 9e1c218af2b4b92a54134a08cdc1a0cf47ff36c5 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Thu, 31 May 2012 12:43:41 +0400 Subject: [PATCH] More precise checks --- .../org/jetbrains/jet/lang/resolve/OverridingUtil.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java index 8c7fe2bbe18..53a9c4fa8d7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java @@ -94,10 +94,13 @@ public class OverridingUtil { @NotNull public static OverrideCompatibilityInfo isOverridableBy(@NotNull CallableDescriptor superDescriptor, @NotNull CallableDescriptor subDescriptor) { if (superDescriptor instanceof FunctionDescriptor) { - if (subDescriptor instanceof PropertyDescriptor) return OverrideCompatibilityInfo.memberKindMismatch(); + if (!(subDescriptor instanceof FunctionDescriptor)) return OverrideCompatibilityInfo.memberKindMismatch(); } - if (superDescriptor instanceof PropertyDescriptor) { - if (subDescriptor instanceof FunctionDescriptor) return OverrideCompatibilityInfo.memberKindMismatch(); + else if (superDescriptor instanceof PropertyDescriptor) { + if (!(subDescriptor instanceof PropertyDescriptor)) return OverrideCompatibilityInfo.memberKindMismatch(); + } + else { + throw new IllegalArgumentException("This type of CallableDescriptor cannot be checked for overridability: " + superDescriptor); } // TODO: check outside of this method