StackOverflow fix on type remapping

This commit is contained in:
Michael Bogdanov
2016-01-13 14:38:38 +03:00
parent 94cea25e2e
commit 66ab1c484c
5 changed files with 37 additions and 1 deletions
@@ -45,7 +45,7 @@ class AsmTypeRemapper(val typeRemapper: TypeRemapper, val isDefaultGeneration: B
return super.visitTypeVariable(mapping.newName)
}
// else TypeVariable is replaced by concrete type
SignatureReader(mapping.signature).accept(this)
SignatureReader(mapping.signature).accept(v)
}
override fun visitFormalTypeParameter(name: String) {
@@ -0,0 +1,18 @@
//NO_CHECK_LAMBDA_INLINING
import test.*
import java.util.*
class I<A>(val s: A)
class A<T : Any>(val elements: List<I<T>>) {
val p = elements.sortedBy { it.hashCode() }
}
fun box(): String {
A(listOf(I("1"), I("2"), I("3"))).p
return "OK"
}
@@ -0,0 +1,6 @@
package test
inline fun stub() {
}
@@ -1423,6 +1423,12 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxInline/signature"), Pattern.compile("^(.+)\\.1.kt$"), true);
}
@TestMetadata("recursion.1.kt")
public void testRecursion() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/signature/recursion.1.kt");
doTestMultiFileWithInlineCheck(fileName);
}
@TestMetadata("sameFormalParameterName.1.kt")
public void testSameFormalParameterName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/signature/sameFormalParameterName.1.kt");
@@ -1423,6 +1423,12 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxInline/signature"), Pattern.compile("^(.+)\\.1.kt$"), true);
}
@TestMetadata("recursion.1.kt")
public void testRecursion() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/signature/recursion.1.kt");
doBoxTestWithInlineCheck(fileName);
}
@TestMetadata("sameFormalParameterName.1.kt")
public void testSameFormalParameterName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/signature/sameFormalParameterName.1.kt");