OverloadResolutionResultsImpl param substituted with ResolvedCall in callResolverExtension

This commit is contained in:
Mikhael Bogdanov
2013-11-13 11:28:34 +04:00
parent afa09caa0f
commit 3caa410e06
5 changed files with 23 additions and 23 deletions
@@ -326,7 +326,9 @@ public class CallResolver {
}
}
context.callResolverExtension.run(results, context);
if (results.isSingleResult()) {
context.callResolverExtension.run(results.getResultingCall(), context);
}
return results;
}
@@ -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);
}
}
}
@@ -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);
}
}
@@ -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()));
}
}
}