Refactor OverridingUtil.resolveUnknownVisibilities
Get rid of dependency on BindingTrace, move the corresponding error reporting logic to OverrideResolver
This commit is contained in:
+7
-2
@@ -66,7 +66,7 @@ public final class DescriptorResolverUtils {
|
||||
@NotNull Collection<D> membersFromSupertypes,
|
||||
@NotNull Collection<D> membersFromCurrent,
|
||||
@NotNull ClassDescriptor classDescriptor,
|
||||
@NotNull final FakeOverrideVisibilityResolver visibilityResolver
|
||||
@NotNull final ErrorReporter errorReporter
|
||||
) {
|
||||
final Set<D> result = new HashSet<D>();
|
||||
|
||||
@@ -76,7 +76,12 @@ public final class DescriptorResolverUtils {
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public void addToScope(@NotNull CallableMemberDescriptor fakeOverride) {
|
||||
visibilityResolver.resolveUnknownVisibilityForMember(fakeOverride);
|
||||
OverridingUtil.resolveUnknownVisibilityForMember(fakeOverride, new OverridingUtil.NotInferredVisibilitySink() {
|
||||
@Override
|
||||
public void cannotInferVisibility(@NotNull CallableMemberDescriptor descriptor) {
|
||||
errorReporter.reportCannotInferVisibility(descriptor);
|
||||
}
|
||||
});
|
||||
result.add((D) fakeOverride);
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -18,8 +18,11 @@ package org.jetbrains.jet.lang.resolve.java.resolver;
|
||||
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
public interface ErrorReporter {
|
||||
void reportIncompatibleAbiVersion(@NotNull FqName fqName, @NotNull VirtualFile file, int actualVersion);
|
||||
|
||||
void reportCannotInferVisibility(@NotNull CallableMemberDescriptor descriptor);
|
||||
}
|
||||
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.lang.resolve.java.resolver;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
||||
|
||||
public interface FakeOverrideVisibilityResolver {
|
||||
void resolveUnknownVisibilityForMember(@NotNull CallableMemberDescriptor descriptor);
|
||||
}
|
||||
+4
-5
@@ -47,7 +47,7 @@ public final class JavaFunctionResolver {
|
||||
private JavaValueParameterResolver valueParameterResolver;
|
||||
private JavaAnnotationResolver annotationResolver;
|
||||
private ExternalSignatureResolver externalSignatureResolver;
|
||||
private FakeOverrideVisibilityResolver fakeOverrideVisibilityResolver;
|
||||
private ErrorReporter errorReporter;
|
||||
private MethodSignatureChecker signatureChecker;
|
||||
|
||||
@Inject
|
||||
@@ -81,8 +81,8 @@ public final class JavaFunctionResolver {
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setFakeOverrideVisibilityResolver(FakeOverrideVisibilityResolver fakeOverrideVisibilityResolver) {
|
||||
this.fakeOverrideVisibilityResolver = fakeOverrideVisibilityResolver;
|
||||
public void setErrorReporter(ErrorReporter errorReporter) {
|
||||
this.errorReporter = errorReporter;
|
||||
}
|
||||
|
||||
@Inject
|
||||
@@ -211,8 +211,7 @@ public final class JavaFunctionResolver {
|
||||
|
||||
Collection<SimpleFunctionDescriptor> functionsFromSupertypes = getFunctionsFromSupertypes(methodName, classDescriptor);
|
||||
|
||||
functions.addAll(resolveOverrides(methodName, functionsFromSupertypes, functionsFromCurrent, classDescriptor,
|
||||
fakeOverrideVisibilityResolver));
|
||||
functions.addAll(resolveOverrides(methodName, functionsFromSupertypes, functionsFromCurrent, classDescriptor, errorReporter));
|
||||
}
|
||||
|
||||
if (isEnumClassObject(owner)) {
|
||||
|
||||
+4
-7
@@ -41,10 +41,7 @@ public final class JavaPropertyResolver {
|
||||
private JavaResolverCache cache;
|
||||
private JavaAnnotationResolver annotationResolver;
|
||||
private ExternalSignatureResolver externalSignatureResolver;
|
||||
private FakeOverrideVisibilityResolver fakeOverrideVisibilityResolver;
|
||||
|
||||
public JavaPropertyResolver() {
|
||||
}
|
||||
private ErrorReporter errorReporter;
|
||||
|
||||
@Inject
|
||||
public void setTypeTransformer(@NotNull JavaTypeTransformer javaTypeTransformer) {
|
||||
@@ -67,8 +64,8 @@ public final class JavaPropertyResolver {
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setFakeOverrideVisibilityResolver(FakeOverrideVisibilityResolver fakeOverrideVisibilityResolver) {
|
||||
this.fakeOverrideVisibilityResolver = fakeOverrideVisibilityResolver;
|
||||
public void setErrorReporter(ErrorReporter errorReporter) {
|
||||
this.errorReporter = errorReporter;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -93,7 +90,7 @@ public final class JavaPropertyResolver {
|
||||
Collection<PropertyDescriptor> propertiesFromSupertypes = getPropertiesFromSupertypes(propertyName, classDescriptor);
|
||||
|
||||
properties.addAll(resolveOverrides(propertyName, propertiesFromSupertypes, propertiesFromCurrent, classDescriptor,
|
||||
fakeOverrideVisibilityResolver));
|
||||
errorReporter));
|
||||
}
|
||||
|
||||
properties.addAll(propertiesFromCurrent);
|
||||
|
||||
Reference in New Issue
Block a user