From 63af29fedb964e4019a6c22e79bc3e0937f74777 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 6 Apr 2012 20:42:16 +0400 Subject: [PATCH] do not create fake descriptors when override private functions --- .../org/jetbrains/jet/lang/resolve/OverrideResolver.java | 3 +++ .../org/jetbrains/jet/lang/resolve/OverridingUtil.java | 8 -------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java index 65fdd5ebc51..18c26a015a3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java @@ -156,6 +156,9 @@ public class OverrideResolver { List fakeOverrides = Lists.newArrayList(); for (CallableMemberDescriptor functionFromSupertype : functionsFromSupertypes) { + if (!Visibilities.isVisible(functionFromSupertype, current)) { + continue; + } boolean overrides = false; 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 2d6b8ccbd32..6d60875f35e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java @@ -93,9 +93,6 @@ public class OverridingUtil { @NotNull public static OverrideCompatibilityInfo isOverridableBy(@NotNull CallableDescriptor superDescriptor, @NotNull CallableDescriptor subDescriptor) { - if (!Visibilities.isVisible(superDescriptor, subDescriptor)) { - return OverrideCompatibilityInfo.invisibleMember(); - } if (superDescriptor instanceof FunctionDescriptor) { if (subDescriptor instanceof PropertyDescriptor) return OverrideCompatibilityInfo.memberKindMismatch(); } @@ -321,11 +318,6 @@ public class OverridingUtil { return new OverrideCompatibilityInfo(Result.INCOMPATIBLE, "varOverriddenByVal"); // TODO } - @NotNull - public static OverrideCompatibilityInfo invisibleMember() { - return new OverrideCompatibilityInfo(Result.INCOMPATIBLE, "invisibleMember"); - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////// private final Result overridable;