From 2eece73df9591529d156fa5d4552f7302b5ecd77 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Tue, 3 Jul 2012 13:00:25 +0400 Subject: [PATCH] 'DIRTY' resolution result code added it means there are some candidates with unknown type parameters that need inference completion --- .../calls/OverloadResolutionResults.java | 3 ++- .../calls/OverloadResolutionResultsImpl.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResults.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResults.java index e9db7837c0c..459347b2ce9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResults.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResults.java @@ -30,7 +30,8 @@ public interface OverloadResolutionResults { 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; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResultsImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResultsImpl.java index 6487e96c36c..7cb284eb542 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResultsImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResultsImpl.java @@ -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(Code.AMBIGUITY, descriptors); } + public static OverloadResolutionResultsImpl dirty(Collection> descriptors) { + return new OverloadResolutionResultsImpl(Code.DIRTY, descriptors); + } + + public static OverloadResolutionResultsImpl dirty(ResolvedCallWithTrace descriptor) { + return new OverloadResolutionResultsImpl(Code.DIRTY, Collections.singleton(descriptor)); + } + private final Collection> results; private final Code resultCode; + private TemporaryBindingTrace trace; private OverloadResolutionResultsImpl(@NotNull Code resultCode, @NotNull Collection> results) { this.results = results; @@ -102,4 +113,13 @@ import java.util.Collections; // public OverloadResolutionResultsImpl newContents(@NotNull Collection functionDescriptors) { // return new OverloadResolutionResultsImpl(resultCode, functionDescriptors); // } + + public TemporaryBindingTrace getTrace() { + return trace; + } + + public OverloadResolutionResultsImpl setTrace(TemporaryBindingTrace trace) { + this.trace = trace; + return this; + } }