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