Refactoring. Move specificity relations into TypeSpecificityComparator component.

This commit is contained in:
Stanislav Erokhin
2016-04-28 15:15:38 +03:00
parent 921eb8402c
commit 8c2d68fff0
14 changed files with 124 additions and 61 deletions
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.psi.KtNamedFunction;
import org.jetbrains.kotlin.psi.KtPsiFactoryKt;
import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
import org.jetbrains.kotlin.resolve.OverloadChecker;
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator;
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfoFactory;
import org.jetbrains.kotlin.resolve.scopes.LexicalScope;
import org.jetbrains.kotlin.test.ConfigurationKind;
@@ -34,7 +35,7 @@ import org.jetbrains.kotlin.tests.di.InjectionKt;
public class KotlinOverloadTest extends KotlinTestWithEnvironment {
private final ModuleDescriptor root = KotlinTestUtils.createEmptyModule("<test_root>");
private FunctionDescriptorResolver functionDescriptorResolver;
private final OverloadChecker overloadChecker = new OverloadChecker();
private final OverloadChecker overloadChecker = new OverloadChecker(TypeSpecificityComparator.NONE.INSTANCE);
@Override
protected KotlinCoreEnvironment createEnvironment() {
@@ -155,8 +156,6 @@ public class KotlinOverloadTest extends KotlinTestWithEnvironment {
FunctionDescriptor a = makeFunction(funA);
FunctionDescriptor b = makeFunction(funB);
boolean aOverloadableWithB = overloadChecker.isOverloadable(a, b);
assertEquals(expectedIsError, !aOverloadableWithB);
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.psi.KtPsiFactoryKt;
import org.jetbrains.kotlin.psi.KtTypeReference;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.resolve.*;
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator;
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
import org.jetbrains.kotlin.resolve.scopes.*;
import org.jetbrains.kotlin.resolve.scopes.utils.ScopeUtilsKt;
@@ -90,7 +91,8 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment {
LexicalScope topLevelScope = trace.get(BindingContext.LEXICAL_SCOPE, jetFile);
final ClassifierDescriptor contextClass = ScopeUtilsKt.findClassifier(topLevelScope, Name.identifier("___Context"), NoLookupLocation.FROM_TEST);
assert contextClass instanceof ClassDescriptor;
LocalRedeclarationChecker redeclarationChecker = new ThrowingLocalRedeclarationChecker(new OverloadChecker());
LocalRedeclarationChecker redeclarationChecker = new ThrowingLocalRedeclarationChecker(new OverloadChecker(
TypeSpecificityComparator.NONE.INSTANCE));
LexicalScope typeParameters = new LexicalScopeImpl(topLevelScope, module, false, null, LexicalScopeKind.SYNTHETIC,
redeclarationChecker,
new Function1<LexicalScopeImpl.InitializeHandler, Unit>() {