'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),
|
NAME_NOT_FOUND(false),
|
||||||
SINGLE_CANDIDATE_ARGUMENT_MISMATCH(false),
|
SINGLE_CANDIDATE_ARGUMENT_MISMATCH(false),
|
||||||
AMBIGUITY(false),
|
AMBIGUITY(false),
|
||||||
MANY_FAILED_CANDIDATES(false);
|
MANY_FAILED_CANDIDATES(false),
|
||||||
|
DIRTY(false);
|
||||||
|
|
||||||
private final boolean success;
|
private final boolean success;
|
||||||
|
|
||||||
|
|||||||
+20
@@ -18,6 +18,8 @@ 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.BindingTrace;
|
||||||
|
import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -46,8 +48,17 @@ import java.util.Collections;
|
|||||||
return new OverloadResolutionResultsImpl<D>(Code.AMBIGUITY, descriptors);
|
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 Collection<ResolvedCallWithTrace<D>> results;
|
||||||
private final Code resultCode;
|
private final Code resultCode;
|
||||||
|
private TemporaryBindingTrace trace;
|
||||||
|
|
||||||
private OverloadResolutionResultsImpl(@NotNull Code resultCode, @NotNull Collection<ResolvedCallWithTrace<D>> results) {
|
private OverloadResolutionResultsImpl(@NotNull Code resultCode, @NotNull Collection<ResolvedCallWithTrace<D>> results) {
|
||||||
this.results = results;
|
this.results = results;
|
||||||
@@ -102,4 +113,13 @@ import java.util.Collections;
|
|||||||
// public OverloadResolutionResultsImpl<D> newContents(@NotNull Collection<D> functionDescriptors) {
|
// public OverloadResolutionResultsImpl<D> newContents(@NotNull Collection<D> functionDescriptors) {
|
||||||
// return new OverloadResolutionResultsImpl<D>(resultCode, 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