From f7c5dc179c24551bc63089ef7b77542a1c303804 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Thu, 6 Mar 2014 15:29:21 +0400 Subject: [PATCH] Eager resolve does not record class object bounds (which are unsupported anyways) --- .../jet/lang/resolve/DescriptorResolver.java | 3 ++- .../testData/diagnostics/tests/MultipleBounds.kt | 10 +++++----- idea/testData/checker/Builders.kt | 10 +++++----- idea/testData/checker/MultipleBounds.kt | 10 +++++----- idea/testData/javaFacade/ea38770.kt | 3 --- .../jet/plugin/javaFacade/JetJavaFacadeTest.java | 13 ------------- 6 files changed, 17 insertions(+), 32 deletions(-) delete mode 100644 idea/testData/javaFacade/ea38770.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java index 22771dcc45a..1020895dcf8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java @@ -670,7 +670,8 @@ public class DescriptorResolver { trace.record(BindingContext.REFERENCE_TARGET, subjectTypeParameterName, typeParameterDescriptor); if (bound != null) { if (constraint.isClassObjectConstraint()) { - typeParameterDescriptor.addClassObjectBound(bound); + // Class object bounds are not supported + //typeParameterDescriptor.addClassObjectBound(bound); } else { typeParameterDescriptor.addUpperBound(bound); diff --git a/compiler/testData/diagnostics/tests/MultipleBounds.kt b/compiler/testData/diagnostics/tests/MultipleBounds.kt index 1fa77ddd589..17edd6c5491 100644 --- a/compiler/testData/diagnostics/tests/MultipleBounds.kt +++ b/compiler/testData/diagnostics/tests/MultipleBounds.kt @@ -24,8 +24,8 @@ class Test1() { fun test(t : T) { - T.foo() - T.bar() + T.foo() + T.bar() t.foo() t.bar() } @@ -54,8 +54,8 @@ fun test2(t : T) class object T : B, class object T : A { - T.foo() - T.bar() + T.foo() + T.bar() t.foo() t.bar() } @@ -64,7 +64,7 @@ val t1 = test2<A>(A()) val t2 = test2<B>(C()) val t3 = test2(C()) -class Test<T> +class Test where class object T : Foo, class object T : A {} diff --git a/idea/testData/checker/Builders.kt b/idea/testData/checker/Builders.kt index 5b725b7f9e4..a697ac7d73e 100644 --- a/idea/testData/checker/Builders.kt +++ b/idea/testData/checker/Builders.kt @@ -14,12 +14,12 @@ import java.util.* val children = ArrayList() val attributes = HashMap() - protected fun initTag(init : T.() -> Unit) : T + protected fun initTag(init : T.() -> Unit) : T where class object T : Factory{ - val tag = T.create() - tag.init() - children.add(tag) - return tag + val tag = T.create() + tag.init() + children.add(tag) + return tag } } diff --git a/idea/testData/checker/MultipleBounds.kt b/idea/testData/checker/MultipleBounds.kt index 450c177ad40..39be0100b2d 100644 --- a/idea/testData/checker/MultipleBounds.kt +++ b/idea/testData/checker/MultipleBounds.kt @@ -24,8 +24,8 @@ class Test1() { fun test(t : T) { - T.foo() - T.bar() + T.foo() + T.bar() t.foo() t.bar() } @@ -54,8 +54,8 @@ fun test2(t : T) class object T : B, class object T : A { - T.foo() - T.bar() + T.foo() + T.bar() t.foo() t.bar() } @@ -64,7 +64,7 @@ val t1 = test2<A>(A()) val t2 = test2<B>(C()) val t3 = test2(C()) -class Test<T> +class Test where class object T : Foo, class object T : A {} diff --git a/idea/testData/javaFacade/ea38770.kt b/idea/testData/javaFacade/ea38770.kt deleted file mode 100644 index de85a1894ba..00000000000 --- a/idea/testData/javaFacade/ea38770.kt +++ /dev/null @@ -1,3 +0,0 @@ -fun foo() where class object T : Any { - T.toString() -} diff --git a/idea/tests/org/jetbrains/jet/plugin/javaFacade/JetJavaFacadeTest.java b/idea/tests/org/jetbrains/jet/plugin/javaFacade/JetJavaFacadeTest.java index 1439b05819f..cb75d83c0c9 100644 --- a/idea/tests/org/jetbrains/jet/plugin/javaFacade/JetJavaFacadeTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/javaFacade/JetJavaFacadeTest.java @@ -163,19 +163,6 @@ public class JetJavaFacadeTest extends JetLightCodeInsightFixtureTestCase { doTestWrapParameter(false, false); } - public void testEa38770() { - myFixture.configureByFile(fileName()); - - PsiReference reference = myFixture.getFile().findReferenceAt(myFixture.getCaretOffset()); - assertNotNull(reference); - PsiElement element = reference.resolve(); - assertNotNull(element); - assertInstanceOf(element, JetNamedFunction.class); - JetNamedFunction toString = (JetNamedFunction) element; - - assertNull("There should be no wrapper for built-in function", LightClassUtil.getLightClassMethod(toString)); - } - public void testInnerClass() throws Exception { myFixture.configureByFile(fileName());