Repoting platform declarations clashes in CLI compiler for JVM

#KT-1 In Progress
This commit is contained in:
Andrey Breslav
2014-05-25 12:42:00 +02:00
parent f4f1dd8f8b
commit 449723e388
6 changed files with 30 additions and 1 deletions
@@ -328,6 +328,7 @@ public class KotlinToJVMBytecodeCompiler {
? null
: IncrementalPackage.getPackagesWithRemovedFiles(
incrementalCacheProvider.getIncrementalCache(incrementalCacheDir), moduleId, environment.getSourceFiles());
BindingTraceContext diagnosticHolder = new BindingTraceContext();
GenerationState generationState = new GenerationState(
environment.getProject(),
ClassBuilderFactories.BINARIES,
@@ -341,9 +342,11 @@ public class KotlinToJVMBytecodeCompiler {
configuration.get(JVMConfigurationKeys.ENABLE_INLINE, InlineCodegenUtil.DEFAULT_INLINE_FLAG),
packagesWithRemovedFiles,
moduleId,
new BindingTraceContext() // TODO
diagnosticHolder
);
KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION);
AnalyzerWithCompilerReport.reportDiagnostics(diagnosticHolder.getBindingContext(),
environment.getConfiguration().get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY));
return generationState;
}
}
@@ -0,0 +1,4 @@
-src
$TESTDATA_DIR$/signatureClash.kt
-output
$TEMP_DIR$
@@ -0,0 +1,7 @@
class A {
fun getA(): Int = 1
val a: Int = 1
}
fun getB(): Int = 1
val b: Int = 1
@@ -0,0 +1,5 @@
ERROR: $TESTDATA_DIR$/signatureClash.kt: (2, 5) Platform declaration clash: 'getA()I'
ERROR: $TESTDATA_DIR$/signatureClash.kt: (3, 5) Platform declaration clash: 'getA()I'
ERROR: $TESTDATA_DIR$/signatureClash.kt: (6, 1) Platform declaration clash: 'getB()I'
ERROR: $TESTDATA_DIR$/signatureClash.kt: (7, 1) Platform declaration clash: 'getB()I'
COMPILATION_ERROR
@@ -79,6 +79,11 @@ public class KotlincExecutableTestGenerated extends AbstractKotlincExecutableTes
doJvmTest("compiler/testData/cli/jvm/script.args");
}
@TestMetadata("signatureClash.args")
public void testSignatureClash() throws Exception {
doJvmTest("compiler/testData/cli/jvm/signatureClash.args");
}
@TestMetadata("simple.args")
public void testSimple() throws Exception {
doJvmTest("compiler/testData/cli/jvm/simple.args");
@@ -56,4 +56,9 @@ public class K2JvmCliTest extends CliBaseTest {
public void classpath() throws Exception {
executeCompilerCompareOutputJVM();
}
@Test
public void signatureClash() throws Exception {
executeCompilerCompareOutputJVM();
}
}