Restore some of the tests for deprecated OBJECT$ field

This commit is contained in:
Pavel V. Talanov
2015-02-11 19:37:50 +03:00
parent 2d59791cf2
commit ed5e2a21d1
12 changed files with 97 additions and 0 deletions
@@ -3,6 +3,11 @@ public final class ClassObjectField implements kotlin.jvm.internal.KObject {
public static final java.lang.String x = "";
private static final java.lang.String y = "";
public static final ClassObjectField.Default Default;
/**
* @deprecated
*/
@java.lang.Deprecated
public static final ClassObjectField.Default OBJECT$;
public ClassObjectField() { /* compiled code */ }
@@ -1,5 +1,10 @@
public interface TraitClassObjectField {
TraitClassObjectField.Default Default;
/**
* @deprecated
*/
@java.lang.Deprecated
TraitClassObjectField.Default OBJECT$;
@org.jetbrains.annotations.Nullable
java.lang.String x = "";
@@ -2,4 +2,10 @@ class C {
<!REDECLARATION!>class object<!> {}
val <!REDECLARATION!>Default<!> = C
}
class D {
<!CONFLICTING_JVM_DECLARATIONS!>class object<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>val `OBJECT$`<!> = D
}
@@ -14,3 +14,18 @@ internal final class C {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
internal final class D {
public constructor D()
internal final val `OBJECT$`: D.Default
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal class object Default {
private constructor Default()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -4,4 +4,12 @@ class C {
}
val <!REDECLARATION!>Default<!> = C
}
class D {
<!CONFLICTING_JVM_DECLARATIONS!>class object<!> {
<!CONFLICTING_JVM_DECLARATIONS!>val `OBJECT$`<!> = this
}
val `OBJECT$` = D
}
@@ -15,3 +15,19 @@ internal final class C {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
internal final class D {
public constructor D()
internal final val `OBJECT$`: D.Default
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal class object Default {
private constructor Default()
internal final val `OBJECT$`: D.Default
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -0,0 +1,8 @@
public class Testing {
public static void test() {
mockLib.foo.LibClass.<caret>
}
}
// EXIST: Default
// EXIST: OBJECT$
@@ -0,0 +1,7 @@
public class ClassObjectField {
public static void foo() {
k.ClassWithClassObject.OB<caret>JECT$.f();
}
}
// REF: class object of (k).ClassWithClassObject
@@ -55,6 +55,12 @@ public class CompiledKotlinInJavaCompletionTestGenerated extends AbstractCompile
doTest(fileName);
}
@TestMetadata("ClassObjectField.java")
public void testClassObjectField() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/injava/ClassObjectField.java");
doTest(fileName);
}
@TestMetadata("ClassesFromNamespace.java")
public void testClassesFromNamespace() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/injava/ClassesFromNamespace.java");
@@ -55,6 +55,12 @@ public class KotlinSourceInJavaCompletionTestGenerated extends AbstractKotlinSou
doTest(fileName);
}
@TestMetadata("ClassObjectField.java")
public void testClassObjectField() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/injava/ClassObjectField.java");
doTest(fileName);
}
@TestMetadata("ClassesFromNamespace.java")
public void testClassesFromNamespace() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/injava/ClassesFromNamespace.java");
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.asJava.LightClassUtil;
import org.jetbrains.kotlin.idea.JetLightCodeInsightFixtureTestCase;
import org.jetbrains.kotlin.idea.JetLightProjectDescriptor;
import org.jetbrains.kotlin.idea.PluginTestCaseBase;
import org.jetbrains.kotlin.load.java.JvmAbi;
import org.jetbrains.kotlin.name.SpecialNames;
import org.jetbrains.kotlin.psi.*;
@@ -199,6 +200,14 @@ public class JetJavaFacadeTest extends JetLightCodeInsightFixtureTestCase {
assertTrue(instance.hasModifierProperty(PsiModifier.STATIC));
assertTrue(instance.hasModifierProperty(PsiModifier.FINAL));
PsiField deprecatedAccessor = theClass.findFieldByName(JvmAbi.DEPRECATED_CLASS_OBJECT_FIELD, false);
assertNotNull(deprecatedAccessor);
assertEquals("foo.TheClass." + defaultClassObjectName, deprecatedAccessor.getType().getCanonicalText());
assertTrue(deprecatedAccessor.hasModifierProperty(PsiModifier.PUBLIC));
assertTrue(deprecatedAccessor.hasModifierProperty(PsiModifier.STATIC));
assertTrue(deprecatedAccessor.hasModifierProperty(PsiModifier.FINAL));
assertTrue(deprecatedAccessor.isDeprecated());
PsiMethod[] methods = classObjectClass.findMethodsByName("getOut", false);
assertEquals("java.io.PrintStream", methods[0].getReturnType().getCanonicalText());
@@ -60,6 +60,12 @@ public class ReferenceResolveInJavaTestGenerated extends AbstractReferenceResolv
doTest(fileName);
}
@TestMetadata("DeprecatedClassObjectField.java")
public void testDeprecatedClassObjectField() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInJava/DeprecatedClassObjectField.java");
doTest(fileName);
}
@TestMetadata("EnumEntry.java")
public void testEnumEntry() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInJava/EnumEntry.java");