Fixing interdependency between delegation and fake overrides

Main changes sit in OverrideResolver::generateOverridesAndDelegationInAClass()

Now fake overrides AND delegation are generated for supertypes before any processing is done for subclasses.
This commit is contained in:
Andrey Breslav
2012-08-15 16:15:04 +04:00
parent 734a9a02ef
commit 00305ba920
10 changed files with 62 additions and 100 deletions
@@ -52,9 +52,15 @@ public abstract class AbstractJetDiagnosticsTest extends JetLiteFixture {
catch (IOException e) {
throw ExceptionUtils.rethrow(e);
}
return new JetCoreEnvironment(getTestRootDisposable(), CompileCompilerDependenciesTest.compilerConfigurationForTests(
ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(),
javaFilesDir));
return new JetCoreEnvironment(
getTestRootDisposable(),
CompileCompilerDependenciesTest.compilerConfigurationForTests(
ConfigurationKind.JDK_AND_ANNOTATIONS,
TestJdkKind.MOCK_JDK,
JetTestUtils.getAnnotationsJar(),
javaFilesDir
)
);
}
private static boolean writeJavaFile(@NotNull String fileName, @NotNull String content, @NotNull File javaFilesDir) {
@@ -15,15 +15,12 @@
*/
package org.jetbrains.jet.checkers;
import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestSuite;
import java.io.File;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.test.TestMetadata;
import org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve;
import java.io.File;
/** This class is generated by {@link org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve}. DO NOT MODIFY MANUALLY */
public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEagerResolve {
@@ -180,8 +177,12 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
@TestMetadata("DelegationNotTotrait.kt")
public void testDelegationNotTotrait() throws Exception {
// todo FIXME: enable this test
//doTest("compiler/testData/diagnostics/tests/DelegationNotTotrait.kt");
doTest("compiler/testData/diagnostics/tests/DelegationNotTotrait.kt");
}
@TestMetadata("Delegation_ScopeInitializationOrder.kt")
public void testDelegation_ScopeInitializationOrder() throws Exception {
doTest("compiler/testData/diagnostics/tests/Delegation_ScopeInitializationOrder.kt");
}
@TestMetadata("DiamondFunction.kt")