added tests for resolve
(to test performance issues)
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
package a
|
||||
|
||||
class A {
|
||||
val testVal : A = A()
|
||||
}
|
||||
|
||||
//inappropriate but participating in resolve functions
|
||||
fun foo<T>(a: T, <!UNUSED_PARAMETER!>b<!>: T, <!UNUSED_PARAMETER!>i<!>: Int) = a
|
||||
fun foo(a: Any) = a
|
||||
fun foo<T>(a: T, <!UNUSED_PARAMETER!>b<!>: String) = a
|
||||
fun foo<T>(a: T, <!UNUSED_PARAMETER!>b<!>: T, <!UNUSED_PARAMETER!>s<!>: String) = a
|
||||
//appropriate function
|
||||
fun foo<T>(a: T, <!UNUSED_PARAMETER!>b<!>: T) = a
|
||||
|
||||
fun test(a: A) {
|
||||
//the problem occurs if there are nested function invocations to resolve (resolve for them is repeated now)
|
||||
//to copy this invocation many times (and to comment/uncomment inappropriate functions) to see the difference
|
||||
foo(foo(a, foo(a, foo(a, a.testVal))), a)
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package c
|
||||
|
||||
class A {
|
||||
val testVal : A = A()
|
||||
}
|
||||
|
||||
//inappropriate but participating in resolve functions
|
||||
fun foo(a: A, <!UNUSED_PARAMETER!>b<!>: A, <!UNUSED_PARAMETER!>i<!>: Int) = a
|
||||
fun foo(a: Any) = a
|
||||
fun foo(a: A, <!UNUSED_PARAMETER!>b<!>: Any) = a
|
||||
fun foo(a: A, <!UNUSED_PARAMETER!>b<!>: A, <!UNUSED_PARAMETER!>s<!>: String) = a
|
||||
//appropriate function
|
||||
fun foo(a: A, <!UNUSED_PARAMETER!>b<!>: A) = a
|
||||
|
||||
fun test(a: A) {
|
||||
//the problem occurs if there are nested function invocations to resolve (resolve for them is repeated now)
|
||||
//to copy this invocation many times (and to comment/uncomment inappropriate functions) to see the difference
|
||||
foo(foo(a, foo(a, foo(a, a.testVal))), a)
|
||||
}
|
||||
@@ -30,7 +30,7 @@ import org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve;
|
||||
@InnerTestClasses({JetDiagnosticsTestGenerated.Tests.class, JetDiagnosticsTestGenerated.Script.class})
|
||||
public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEagerResolve {
|
||||
@TestMetadata("compiler/testData/diagnostics/tests")
|
||||
@InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.Deparenthesize.class, Tests.Enum.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Library.class, Tests.NullabilityAndAutoCasts.class, Tests.NullableTypes.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.ThisAndSuper.class, Tests.Tuples.class, Tests.Varargs.class})
|
||||
@InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.Deparenthesize.class, Tests.Enum.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Library.class, Tests.NullabilityAndAutoCasts.class, Tests.NullableTypes.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Resolve.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.ThisAndSuper.class, Tests.Tuples.class, Tests.Varargs.class})
|
||||
public static class Tests extends AbstractDiagnosticsTestWithEagerResolve {
|
||||
@TestMetadata("Abstract.kt")
|
||||
public void testAbstract() throws Exception {
|
||||
@@ -3372,6 +3372,24 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/resolve")
|
||||
public static class Resolve extends AbstractDiagnosticsTestWithEagerResolve {
|
||||
public void testAllFilesPresentInResolve() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/resolve"), "kt", true);
|
||||
}
|
||||
|
||||
@TestMetadata("resolveWithGenerics.kt")
|
||||
public void testResolveWithGenerics() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/resolve/resolveWithGenerics.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("resolveWithoutGenerics.kt")
|
||||
public void testResolveWithoutGenerics() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/resolve/resolveWithoutGenerics.kt");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/scopes")
|
||||
public static class Scopes extends AbstractDiagnosticsTestWithEagerResolve {
|
||||
public void testAllFilesPresentInScopes() throws Exception {
|
||||
@@ -3858,6 +3876,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
suite.addTestSuite(Override.class);
|
||||
suite.addTestSuite(Redeclarations.class);
|
||||
suite.addTestSuite(Regressions.class);
|
||||
suite.addTestSuite(Resolve.class);
|
||||
suite.addTestSuite(Scopes.class);
|
||||
suite.addTestSuite(SenselessComparison.class);
|
||||
suite.addTestSuite(Shadowing.class);
|
||||
|
||||
Reference in New Issue
Block a user