Do not produce error classes for not found annotations

This commit is contained in:
Alexander Udalov
2016-03-21 18:54:29 +03:00
parent e915e1548c
commit 8d64ed7f3f
24 changed files with 147 additions and 61 deletions
@@ -52,6 +52,7 @@ import org.jetbrains.org.objectweb.asm.ClassReader;
import org.jetbrains.org.objectweb.asm.ClassVisitor;
import org.jetbrains.org.objectweb.asm.ClassWriter;
import org.jetbrains.org.objectweb.asm.Opcodes;
import org.junit.Assert;
import java.io.BufferedOutputStream;
import java.io.File;
@@ -83,7 +84,8 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
@NotNull
private File compileLibrary(@NotNull String sourcePath, @NotNull File... extraClassPath) {
File result = new File(tmpdir, sourcePath + ".jar");
compileKotlin(sourcePath, result, extraClassPath);
Pair<String, ExitCode> output = compileKotlin(sourcePath, result, extraClassPath);
Assert.assertEquals(normalizeOutput(new Pair<String, ExitCode>("", ExitCode.OK)), normalizeOutput(output));
return result;
}
@@ -298,6 +300,10 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
doTestBrokenKotlinLibrary("library", "a/A.class");
}
public void testMissingDependencyNestedAnnotation() throws Exception {
doTestBrokenKotlinLibrary("library", "a/A$Anno.class");
}
public void testMissingDependencyConflictingLibraries() throws Exception {
File library1 = copyJarFileWithoutEntry(compileLibrary("library1"),
"a/A.class", "a/A$Inner.class", "a/AA.class", "a/AA$Inner.class");
@@ -318,6 +324,10 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
KotlinTestUtils.assertEqualsToFile(new File(getTestDataDirectory(), "output.txt"), normalizeOutput(output));
}
public void testMissingDependencyJavaNestedAnnotation() throws Exception {
doTestBrokenJavaLibrary("library", "test/A$Anno.class");
}
/*test source mapping generation when source info is absent*/
public void testInlineFunWithoutDebugInfo() throws Exception {
compileKotlin("sourceInline.kt", tmpdir);