Allow resolve class declarations in class objects

Use INACCESSIBLE_OUTER_CLASS_EXPRESSION error for marking already resolved elements

 #KT-3261 Fixed
This commit is contained in:
Nikolay Krasko
2013-06-04 16:18:29 +04:00
parent a04ecb185e
commit 37cd7eb1ba
24 changed files with 239 additions and 51 deletions
@@ -3007,6 +3007,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/inner"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("classesInClassObjectHeader.kt")
public void testClassesInClassObjectHeader() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/classesInClassObjectHeader.kt");
}
@TestMetadata("constructorAccess.kt")
public void testConstructorAccess() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/constructorAccess.kt");
@@ -3027,6 +3032,21 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/inner/illegalModifier.kt");
}
@TestMetadata("innerClassesInStaticParameters.kt")
public void testInnerClassesInStaticParameters() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/innerClassesInStaticParameters.kt");
}
@TestMetadata("innerErrorForClassObjects.kt")
public void testInnerErrorForClassObjects() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/innerErrorForClassObjects.kt");
}
@TestMetadata("innerErrorForObjects.kt")
public void testInnerErrorForObjects() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/innerErrorForObjects.kt");
}
@TestMetadata("innerThisSuper.kt")
public void testInnerThisSuper() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/innerThisSuper.kt");
@@ -3087,6 +3107,16 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/inner/outerSuperClassMember.kt");
}
@TestMetadata("resolvePackageClassInObjects.kt")
public void testResolvePackageClassInObjects() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/resolvePackageClassInObjects.kt");
}
@TestMetadata("selfAnnotationForClassObject.kt")
public void testSelfAnnotationForClassObject() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/selfAnnotationForClassObject.kt");
}
@TestMetadata("traits.kt")
public void testTraits() throws Exception {
doTest("compiler/testData/diagnostics/tests/inner/traits.kt");
@@ -680,6 +680,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest("compiler/testData/codegen/box/classes/classObjectNotOfEnum.kt");
}
@TestMetadata("classObjectsWithParentClasses.kt")
public void testClassObjectsWithParentClasses() throws Exception {
doTest("compiler/testData/codegen/box/classes/classObjectsWithParentClasses.kt");
}
@TestMetadata("delegation2.kt")
public void testDelegation2() throws Exception {
doTest("compiler/testData/codegen/box/classes/delegation2.kt");
@@ -259,6 +259,11 @@ public class LoadCompiledKotlinTestGenerated extends AbstractLoadCompiledKotlinT
doTestWithAccessors("compiler/testData/loadKotlin/classObject/ClassObjectExtendsTraitWithTP.kt");
}
@TestMetadata("InnerClassInClassObject.kt")
public void testInnerClassInClassObject() throws Exception {
doTestWithAccessors("compiler/testData/loadKotlin/classObject/InnerClassInClassObject.kt");
}
@TestMetadata("SimpleClassObject.kt")
public void testSimpleClassObject() throws Exception {
doTestWithAccessors("compiler/testData/loadKotlin/classObject/SimpleClassObject.kt");
@@ -261,6 +261,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadKotlin/classObject/ClassObjectExtendsTraitWithTP.kt");
}
@TestMetadata("InnerClassInClassObject.kt")
public void testInnerClassInClassObject() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadKotlin/classObject/InnerClassInClassObject.kt");
}
@TestMetadata("SimpleClassObject.kt")
public void testSimpleClassObject() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadKotlin/classObject/SimpleClassObject.kt");
@@ -2137,6 +2142,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
doTestCheckingPrimaryConstructors("compiler/testData/lazyResolve/namespaceComparator/propertyClassFileDependencyRecursion.kt");
}
@TestMetadata("resolveFunctionInsideClassObject.kt")
public void testResolveFunctionInsideClassObject() throws Exception {
doTestCheckingPrimaryConstructors("compiler/testData/lazyResolve/namespaceComparator/resolveFunctionInsideClassObject.kt");
}
@TestMetadata("sameClassNameResolve.kt")
public void testSameClassNameResolve() throws Exception {
doTestCheckingPrimaryConstructors("compiler/testData/lazyResolve/namespaceComparator/sameClassNameResolve.kt");
@@ -163,6 +163,11 @@ public class JetResolveTestGenerated extends AbstractResolveTest {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/resolve/candidatesPriority"), Pattern.compile("^(.+)\\.resolve$"), true);
}
@TestMetadata("classObjectOuterResolve.resolve")
public void testClassObjectOuterResolve() throws Exception {
doTest("compiler/testData/resolve/candidatesPriority/classObjectOuterResolve.resolve");
}
@TestMetadata("preferImplicitThisToNoReceiver.resolve")
public void testPreferImplicitThisToNoReceiver() throws Exception {
doTest("compiler/testData/resolve/candidatesPriority/preferImplicitThisToNoReceiver.resolve");