'DIRTY' resolution result code added
it means there are some candidates with unknown type parameters that need inference completion
This commit is contained in:
+2
-1
@@ -30,7 +30,8 @@ public interface OverloadResolutionResults<D extends CallableDescriptor> {
|
||||
NAME_NOT_FOUND(false),
|
||||
SINGLE_CANDIDATE_ARGUMENT_MISMATCH(false),
|
||||
AMBIGUITY(false),
|
||||
MANY_FAILED_CANDIDATES(false);
|
||||
MANY_FAILED_CANDIDATES(false),
|
||||
DIRTY(false);
|
||||
|
||||
private final boolean success;
|
||||
|
||||
|
||||
+20
@@ -18,6 +18,8 @@ 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.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -46,8 +48,17 @@ import java.util.Collections;
|
||||
return new OverloadResolutionResultsImpl<D>(Code.AMBIGUITY, descriptors);
|
||||
}
|
||||
|
||||
public static <D extends CallableDescriptor> OverloadResolutionResultsImpl<D> dirty(Collection<ResolvedCallWithTrace<D>> descriptors) {
|
||||
return new OverloadResolutionResultsImpl<D>(Code.DIRTY, descriptors);
|
||||
}
|
||||
|
||||
public static <D extends CallableDescriptor> OverloadResolutionResultsImpl<D> dirty(ResolvedCallWithTrace<D> descriptor) {
|
||||
return new OverloadResolutionResultsImpl<D>(Code.DIRTY, Collections.singleton(descriptor));
|
||||
}
|
||||
|
||||
private final Collection<ResolvedCallWithTrace<D>> results;
|
||||
private final Code resultCode;
|
||||
private TemporaryBindingTrace trace;
|
||||
|
||||
private OverloadResolutionResultsImpl(@NotNull Code resultCode, @NotNull Collection<ResolvedCallWithTrace<D>> results) {
|
||||
this.results = results;
|
||||
@@ -102,4 +113,13 @@ import java.util.Collections;
|
||||
// public OverloadResolutionResultsImpl<D> newContents(@NotNull Collection<D> functionDescriptors) {
|
||||
// return new OverloadResolutionResultsImpl<D>(resultCode, functionDescriptors);
|
||||
// }
|
||||
|
||||
public TemporaryBindingTrace getTrace() {
|
||||
return trace;
|
||||
}
|
||||
|
||||
public OverloadResolutionResultsImpl<D> setTrace(TemporaryBindingTrace trace) {
|
||||
this.trace = trace;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user