OverloadResolutionResultsImpl param substituted with ResolvedCall in callResolverExtension
This commit is contained in:
@@ -326,7 +326,9 @@ public class CallResolver {
|
||||
}
|
||||
}
|
||||
|
||||
context.callResolverExtension.run(results, context);
|
||||
if (results.isSingleResult()) {
|
||||
context.callResolverExtension.run(results.getResultingCall(), context);
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
+2
-1
@@ -19,8 +19,9 @@ package org.jetbrains.jet.lang.resolve.calls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.calls.context.BasicCallResolutionContext;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResultsImpl;
|
||||
|
||||
public interface CallResolverExtension {
|
||||
<F extends CallableDescriptor> void run(@NotNull OverloadResolutionResultsImpl<F> results, @NotNull BasicCallResolutionContext context);
|
||||
<F extends CallableDescriptor> void run(@NotNull ResolvedCall<F> resolvedCall, @NotNull BasicCallResolutionContext context);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.jetbrains.jet.lang.resolve.calls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.calls.context.BasicCallResolutionContext;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResultsImpl;
|
||||
|
||||
import java.util.List;
|
||||
@@ -17,11 +18,11 @@ public class CompositeExtension implements CallResolverExtension {
|
||||
|
||||
@Override
|
||||
public <F extends CallableDescriptor> void run(
|
||||
@NotNull OverloadResolutionResultsImpl<F> results,
|
||||
@NotNull ResolvedCall<F> resolvedCall,
|
||||
@NotNull BasicCallResolutionContext context
|
||||
) {
|
||||
for (CallResolverExtension resolverExtension : extensions) {
|
||||
resolverExtension.run(results, context);
|
||||
resolverExtension.run(resolvedCall, context);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-7
@@ -21,6 +21,7 @@ import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.Visibilities;
|
||||
import org.jetbrains.jet.lang.resolve.calls.context.BasicCallResolutionContext;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCallWithTrace;
|
||||
import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResultsImpl;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
@@ -31,15 +32,12 @@ public class NeedSyntheticCallResolverExtension implements CallResolverExtension
|
||||
|
||||
@Override
|
||||
public <F extends CallableDescriptor> void run(
|
||||
@NotNull OverloadResolutionResultsImpl<F> results,
|
||||
@NotNull ResolvedCall<F> resolvedCall,
|
||||
@NotNull BasicCallResolutionContext context
|
||||
) {
|
||||
if (results.isSingleResult()) {
|
||||
ResolvedCallWithTrace<F> resolvedCall = results.getResultingCall();
|
||||
CallableDescriptor targetDescriptor = resolvedCall.getResultingDescriptor();
|
||||
if (needSyntheticAccessor(context.scope, targetDescriptor)) {
|
||||
context.trace.record(NEED_SYNTHETIC_ACCESSOR, (CallableMemberDescriptor) targetDescriptor.getOriginal(), Boolean.TRUE);
|
||||
}
|
||||
CallableDescriptor targetDescriptor = resolvedCall.getResultingDescriptor();
|
||||
if (needSyntheticAccessor(context.scope, targetDescriptor)) {
|
||||
context.trace.record(NEED_SYNTHETIC_ACCESSOR, (CallableMemberDescriptor) targetDescriptor.getOriginal(), Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-12
@@ -7,6 +7,7 @@ import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.diagnostics.Errors;
|
||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||
import org.jetbrains.jet.lang.resolve.calls.context.BasicCallResolutionContext;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResultsImpl;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
|
||||
@@ -15,19 +16,16 @@ import java.util.Map;
|
||||
public class TypeParameterAsReifiedCheck implements CallResolverExtension {
|
||||
@Override
|
||||
public <F extends CallableDescriptor> void run(
|
||||
@NotNull OverloadResolutionResultsImpl<F> results, @NotNull BasicCallResolutionContext context
|
||||
@NotNull ResolvedCall<F> resolvedCall, @NotNull BasicCallResolutionContext context
|
||||
) {
|
||||
if (results.isSuccess()) {
|
||||
Map<TypeParameterDescriptor, JetType> typeArguments = results.getResultingCall().getTypeArguments();
|
||||
for (Map.Entry<TypeParameterDescriptor, JetType> entry : typeArguments.entrySet()) {
|
||||
TypeParameterDescriptor parameter = entry.getKey();
|
||||
JetType argument = entry.getValue();
|
||||
|
||||
if (parameter.isReified() && argument.getConstructor().getDeclarationDescriptor() instanceof TypeParameterDescriptor) {
|
||||
JetExpression callee = context.call.getCalleeExpression();
|
||||
PsiElement element = callee != null ? callee : context.call.getCallElement();
|
||||
context.trace.report(Errors.TYPE_PARAMETER_AS_REIFIED.on(element, typeArguments.keySet().iterator().next()));
|
||||
}
|
||||
Map<TypeParameterDescriptor, JetType> typeArguments = resolvedCall.getTypeArguments();
|
||||
for (Map.Entry<TypeParameterDescriptor, JetType> entry : typeArguments.entrySet()) {
|
||||
TypeParameterDescriptor parameter = entry.getKey();
|
||||
JetType argument = entry.getValue();
|
||||
if (parameter.isReified() && argument.getConstructor().getDeclarationDescriptor() instanceof TypeParameterDescriptor) {
|
||||
JetExpression callee = context.call.getCalleeExpression();
|
||||
PsiElement element = callee != null ? callee : context.call.getCallElement();
|
||||
context.trace.report(Errors.TYPE_PARAMETER_AS_REIFIED.on(element, typeArguments.keySet().iterator().next()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user