[Test] Integrate AbstractCompileTimeConstantEvaluatorTest to AbstractDiagnosticTest
^KT-47898
This commit is contained in:
+220
@@ -4726,6 +4726,226 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ConstantEvaluator {
|
||||
@Test
|
||||
public void testAllFilesPresentInConstantEvaluator() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/constant")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class Constant {
|
||||
@Test
|
||||
public void testAllFilesPresentInConstant() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/constant"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("classObjectProperty.kt")
|
||||
public void testClassObjectProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/classObjectProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("compareTo.kt")
|
||||
public void testCompareTo() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/compareTo.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("differentTypes.kt")
|
||||
public void testDifferentTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/differentTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("divideByZero.kt")
|
||||
public void testDivideByZero() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/divideByZero.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("equals.kt")
|
||||
public void testEquals() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/equals.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exceptionWhenEvaluate.kt")
|
||||
public void testExceptionWhenEvaluate() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/exceptionWhenEvaluate.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("finalProperty.kt")
|
||||
public void testFinalProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/finalProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("float.kt")
|
||||
public void testFloat() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/float.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("floatsAndDoubles.kt")
|
||||
public void testFloatsAndDoubles() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/floatsAndDoubles.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integer.kt")
|
||||
public void testInteger() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integer.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integerOperations.kt")
|
||||
public void testIntegerOperations() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integerOperations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integers.kt")
|
||||
public void testIntegers() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integers.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("localVal.kt")
|
||||
public void testLocalVal() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/localVal.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("localVar.kt")
|
||||
public void testLocalVar() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/localVar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonFinalProperty.kt")
|
||||
public void testNonFinalProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/nonFinalProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("objectProperty.kt")
|
||||
public void testObjectProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/objectProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("strings.kt")
|
||||
public void testStrings() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/strings.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelVal.kt")
|
||||
public void testTopLevelVal() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/topLevelVal.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelVar.kt")
|
||||
public void testTopLevelVar() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/topLevelVar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndepWoExpType.kt")
|
||||
public void testUnaryMinusIndepWoExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/unaryMinusIndepWoExpType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndependentExpType.kt")
|
||||
public void testUnaryMinusIndependentExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/unaryMinusIndependentExpType.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/isPure")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class IsPure {
|
||||
@Test
|
||||
public void testAllFilesPresentInIsPure() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/isPure"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("innerToType.kt")
|
||||
public void testInnerToType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/innerToType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("namedConstants.kt")
|
||||
public void testNamedConstants() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/namedConstants.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("toType.kt")
|
||||
public void testToType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/toType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndepWoExpType.kt")
|
||||
public void testUnaryMinusIndepWoExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/unaryMinusIndepWoExpType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndependentExpType.kt")
|
||||
public void testUnaryMinusIndependentExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/unaryMinusIndependentExpType.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class UsesVariableAsConstant {
|
||||
@Test
|
||||
public void testAllFilesPresentInUsesVariableAsConstant() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("binaryTypes.kt")
|
||||
public void testBinaryTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/binaryTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("NamedConstants.kt")
|
||||
public void testNamedConstants() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/NamedConstants.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("OtherTypes.kt")
|
||||
public void testOtherTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/OtherTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("simpleTypes.kt")
|
||||
public void testSimpleTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/simpleTypes.kt");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constructorConsistency")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
|
||||
+220
@@ -4726,6 +4726,226 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ConstantEvaluator {
|
||||
@Test
|
||||
public void testAllFilesPresentInConstantEvaluator() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/constant")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class Constant {
|
||||
@Test
|
||||
public void testAllFilesPresentInConstant() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/constant"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("classObjectProperty.kt")
|
||||
public void testClassObjectProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/classObjectProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("compareTo.kt")
|
||||
public void testCompareTo() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/compareTo.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("differentTypes.kt")
|
||||
public void testDifferentTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/differentTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("divideByZero.kt")
|
||||
public void testDivideByZero() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/divideByZero.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("equals.kt")
|
||||
public void testEquals() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/equals.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exceptionWhenEvaluate.kt")
|
||||
public void testExceptionWhenEvaluate() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/exceptionWhenEvaluate.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("finalProperty.kt")
|
||||
public void testFinalProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/finalProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("float.kt")
|
||||
public void testFloat() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/float.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("floatsAndDoubles.kt")
|
||||
public void testFloatsAndDoubles() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/floatsAndDoubles.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integer.kt")
|
||||
public void testInteger() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integer.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integerOperations.kt")
|
||||
public void testIntegerOperations() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integerOperations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integers.kt")
|
||||
public void testIntegers() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integers.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("localVal.kt")
|
||||
public void testLocalVal() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/localVal.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("localVar.kt")
|
||||
public void testLocalVar() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/localVar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonFinalProperty.kt")
|
||||
public void testNonFinalProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/nonFinalProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("objectProperty.kt")
|
||||
public void testObjectProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/objectProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("strings.kt")
|
||||
public void testStrings() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/strings.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelVal.kt")
|
||||
public void testTopLevelVal() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/topLevelVal.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelVar.kt")
|
||||
public void testTopLevelVar() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/topLevelVar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndepWoExpType.kt")
|
||||
public void testUnaryMinusIndepWoExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/unaryMinusIndepWoExpType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndependentExpType.kt")
|
||||
public void testUnaryMinusIndependentExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/unaryMinusIndependentExpType.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/isPure")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class IsPure {
|
||||
@Test
|
||||
public void testAllFilesPresentInIsPure() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/isPure"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("innerToType.kt")
|
||||
public void testInnerToType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/innerToType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("namedConstants.kt")
|
||||
public void testNamedConstants() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/namedConstants.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("toType.kt")
|
||||
public void testToType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/toType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndepWoExpType.kt")
|
||||
public void testUnaryMinusIndepWoExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/unaryMinusIndepWoExpType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndependentExpType.kt")
|
||||
public void testUnaryMinusIndependentExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/unaryMinusIndependentExpType.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class UsesVariableAsConstant {
|
||||
@Test
|
||||
public void testAllFilesPresentInUsesVariableAsConstant() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("binaryTypes.kt")
|
||||
public void testBinaryTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/binaryTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("NamedConstants.kt")
|
||||
public void testNamedConstants() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/NamedConstants.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("OtherTypes.kt")
|
||||
public void testOtherTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/OtherTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("simpleTypes.kt")
|
||||
public void testSimpleTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/simpleTypes.kt");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constructorConsistency")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
|
||||
+4
@@ -87,6 +87,10 @@ class TreesCompareTest : AbstractRawFirBuilderTestCase() {
|
||||
if (file.name.endsWith(".fir.kt")) {
|
||||
return@compareBase true
|
||||
}
|
||||
if (file.path.replace("\\", "/") == "compiler/testData/diagnostics/tests/constantEvaluator/constant/strings.kt") {
|
||||
// `DIAGNOSTIC_IN_TESTDATA_PATTERN` fails to correctly strip diagnostics from this file
|
||||
return@compareBase true
|
||||
}
|
||||
val notEditedText = FileUtil.loadFile(file, CharsetToolkit.UTF8, true).trim()
|
||||
val text = notEditedText.replace(DIAGNOSTIC_IN_TESTDATA_PATTERN, "").replaceAfter(".java", "")
|
||||
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@ class A {
|
||||
val prop4 = A.a + 1
|
||||
|
||||
// val prop7: 0
|
||||
open val prop7 = 0
|
||||
<!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> val prop7 = 0
|
||||
|
||||
// val prop8: null
|
||||
val prop8 = prop7
|
||||
@@ -52,4 +52,4 @@ fun foo() {
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package test
|
||||
|
||||
// val prop1: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop1 = A.a<!>
|
||||
|
||||
// val prop2: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop2 = A.a + 1<!>
|
||||
|
||||
class A {
|
||||
// val prop3: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop3 = A.a<!>
|
||||
|
||||
// val prop4: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop4 = A.a + 1<!>
|
||||
|
||||
// val prop7: 0
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("0")!><!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> val prop7 = 0<!>
|
||||
|
||||
// val prop8: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop8 = prop7<!>
|
||||
|
||||
companion object {
|
||||
val a = 1
|
||||
}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
// val prop5: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop5 = A.a<!>
|
||||
|
||||
// val prop6: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop6 = A.a + 1<!>
|
||||
|
||||
val b = {
|
||||
// val prop11: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop11 = A.a<!>
|
||||
|
||||
// val prop12: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop12 = A.a + 1<!>
|
||||
}
|
||||
|
||||
val c = object: Foo {
|
||||
override fun f() {
|
||||
// val prop9: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop9 = A.a<!>
|
||||
|
||||
// val prop10: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop10 = A.a + 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int = 1
|
||||
public val prop2: kotlin.Int = 2
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final val prop3: kotlin.Int = 1
|
||||
public final val prop4: kotlin.Int = 2
|
||||
public open val prop7: kotlin.Int = 0
|
||||
public final val prop8: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
public final val a: kotlin.Int = 1
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public interface Foo {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package test
|
||||
|
||||
// val prop1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop1 = 1 > 2<!>
|
||||
|
||||
// val prop2: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop2 = 1 < 2<!>
|
||||
|
||||
// val prop3: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop3 = 1 <= 2<!>
|
||||
|
||||
// val prop4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop4 = 1 >= 2<!>
|
||||
|
||||
// val prop5: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val prop5 = 1.compareTo(2)<!>
|
||||
|
||||
// val prop6: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop6 = 1.compareTo(2) > 0<!>
|
||||
@@ -0,0 +1,10 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Boolean = false
|
||||
public val prop2: kotlin.Boolean = true
|
||||
public val prop3: kotlin.Boolean = true
|
||||
public val prop4: kotlin.Boolean = false
|
||||
public val prop5: kotlin.Int = -1
|
||||
public val prop6: kotlin.Boolean = false
|
||||
}
|
||||
+4
-4
@@ -31,15 +31,15 @@ val prop9: Any? = "a"
|
||||
val prop10: Any = "a"
|
||||
|
||||
// val prop11: null
|
||||
val prop11: aaa = 1
|
||||
val prop11: <!UNRESOLVED_REFERENCE!>aaa<!> = 1
|
||||
|
||||
// val prop14: null
|
||||
val prop14: aaa? = 1
|
||||
val prop14: <!UNRESOLVED_REFERENCE!>aaa<!>? = 1
|
||||
|
||||
class A
|
||||
|
||||
// val prop15: null
|
||||
val prop15: A = 1
|
||||
val prop15: A = <!INITIALIZER_TYPE_MISMATCH!>1<!>
|
||||
|
||||
// val prop16: 1
|
||||
val prop16: A? = 1
|
||||
val prop16: A? = <!INITIALIZER_TYPE_MISMATCH!>1<!>
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package test
|
||||
|
||||
// val prop1: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop1: Int = 1<!>
|
||||
|
||||
// val prop2: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop2: Int? = 1<!>
|
||||
|
||||
// val prop3: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop3: Number? = 1<!>
|
||||
|
||||
// val prop4: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop4: Any? = 1<!>
|
||||
|
||||
// val prop5: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop5: Number = 1<!>
|
||||
|
||||
// val prop6: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop6: Any = 1<!>
|
||||
|
||||
// val prop7: \"a\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"a\"")!>val prop7: String = "a"<!>
|
||||
|
||||
// val prop8: \"a\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"a\"")!>val prop8: String? = "a"<!>
|
||||
|
||||
// val prop9: \"a\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"a\"")!>val prop9: Any? = "a"<!>
|
||||
|
||||
// val prop10: \"a\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"a\"")!>val prop10: Any = "a"<!>
|
||||
|
||||
// val prop11: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop11: <!UNRESOLVED_REFERENCE!>aaa<!> = 1<!>
|
||||
|
||||
// val prop14: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop14: <!UNRESOLVED_REFERENCE!>aaa<!>? = 1<!>
|
||||
|
||||
class A
|
||||
|
||||
// val prop15: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop15: A = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!><!>
|
||||
|
||||
// val prop16: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop16: A? = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!><!>
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int = 1
|
||||
public val prop10: kotlin.Any = "a"
|
||||
public val prop11: [ERROR : aaa]
|
||||
public val prop14: [ERROR : aaa]?
|
||||
public val prop15: test.A
|
||||
public val prop16: test.A? = 1
|
||||
public val prop2: kotlin.Int? = 1
|
||||
public val prop3: kotlin.Number? = 1
|
||||
public val prop4: kotlin.Any? = 1
|
||||
public val prop5: kotlin.Number = 1
|
||||
public val prop6: kotlin.Any = 1
|
||||
public val prop7: kotlin.String = "a"
|
||||
public val prop8: kotlin.String? = "a"
|
||||
public val prop9: kotlin.Any? = "a"
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+12
-12
@@ -1,13 +1,13 @@
|
||||
package test
|
||||
|
||||
// val prop1: null
|
||||
val prop1 = 1 / 0
|
||||
val prop1 = <!DIVISION_BY_ZERO!>1 / 0<!>
|
||||
|
||||
// val prop2: Infinity.toDouble()
|
||||
val prop2 = 1 / 0.0
|
||||
val prop2 = <!DIVISION_BY_ZERO!>1 / 0.0<!>
|
||||
|
||||
// val prop3: Infinity.toDouble()
|
||||
val prop3 = 1.0 / 0
|
||||
val prop3 = <!DIVISION_BY_ZERO!>1.0 / 0<!>
|
||||
|
||||
// val prop4: 10.0.toDouble()
|
||||
val prop4 = 1 / 0.1
|
||||
@@ -34,28 +34,28 @@ val prop10 = 1.0 / 0.toFloat()
|
||||
val prop11 = 1.0 / 0.toDouble()
|
||||
|
||||
// val prop12: -Infinity.toDouble()
|
||||
val prop12 = -1.0 / 0
|
||||
val prop12 = <!DIVISION_BY_ZERO!>-1.0 / 0<!>
|
||||
|
||||
// val prop13: Infinity.toFloat()
|
||||
val prop13 = 1f / 0
|
||||
val prop13 = <!DIVISION_BY_ZERO!>1f / 0<!>
|
||||
|
||||
// val prop14: -Infinity.toFloat()
|
||||
val prop14 = -1f / 0
|
||||
val prop14 = <!DIVISION_BY_ZERO!>-1f / 0<!>
|
||||
|
||||
// val prop15: NaN.toDouble()
|
||||
val prop15 = 0.0 / 0
|
||||
val prop15 = <!DIVISION_BY_ZERO!>0.0 / 0<!>
|
||||
|
||||
// val prop16: NaN.toFloat()
|
||||
val prop16 = 0f / 0
|
||||
val prop16 = <!DIVISION_BY_ZERO!>0f / 0<!>
|
||||
|
||||
// val prop17: NaN.toDouble()
|
||||
val prop17 = -0.0 / 0
|
||||
val prop17 = <!DIVISION_BY_ZERO!>-0.0 / 0<!>
|
||||
|
||||
// val prop18: NaN.toDouble()
|
||||
val prop18 = 1.0 / 0 - 1.0 / 0
|
||||
val prop18 = <!DIVISION_BY_ZERO!>1.0 / 0<!> - <!DIVISION_BY_ZERO!>1.0 / 0<!>
|
||||
|
||||
// val prop19: NaN.toFloat()
|
||||
val prop19 = 1f / 0 - 1f / 0
|
||||
val prop19 = <!DIVISION_BY_ZERO!>1f / 0<!> - <!DIVISION_BY_ZERO!>1f / 0<!>
|
||||
|
||||
// val prop20: NaN.toDouble()
|
||||
val prop20 = 1.0 % 0
|
||||
@@ -76,4 +76,4 @@ val prop24 = -0.0 % 0
|
||||
val prop26 = 1.0.rem(0)
|
||||
|
||||
// val prop27: Infinity.toDouble()
|
||||
val prop27 = 1.0.div(0)
|
||||
val prop27 = <!DIVISION_BY_ZERO!>1.0.div(0)<!>
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
package test
|
||||
|
||||
// val prop1: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop1 = <!DIVISION_BY_ZERO!>1 / 0<!><!>
|
||||
|
||||
// val prop2: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop2 = <!DIVISION_BY_ZERO!>1 / 0.0<!><!>
|
||||
|
||||
// val prop3: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop3 = <!DIVISION_BY_ZERO!>1.0 / 0<!><!>
|
||||
|
||||
// val prop4: 10.0.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("10.0.toDouble()")!>val prop4 = 1 / 0.1<!>
|
||||
|
||||
// val prop5: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop5 = <!DIVISION_BY_ZERO!>1 / 0.toLong()<!><!>
|
||||
|
||||
// val prop6: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop6 = <!DIVISION_BY_ZERO!>1.0 / 0.toInt()<!><!>
|
||||
|
||||
// val prop7: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop7 = <!DIVISION_BY_ZERO!>1.0 / 0.toLong()<!><!>
|
||||
|
||||
// val prop8: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop8 = <!DIVISION_BY_ZERO!>1.0 / 0.toByte()<!><!>
|
||||
|
||||
// val prop9: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop9 = <!DIVISION_BY_ZERO!>1.0 / 0.toShort()<!><!>
|
||||
|
||||
// val prop10: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop10 = <!DIVISION_BY_ZERO!>1.0 / 0.toFloat()<!><!>
|
||||
|
||||
// val prop11: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop11 = <!DIVISION_BY_ZERO!>1.0 / 0.toDouble()<!><!>
|
||||
|
||||
// val prop12: -Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-Infinity.toDouble()")!>val prop12 = <!DIVISION_BY_ZERO!>-1.0 / 0<!><!>
|
||||
|
||||
// val prop13: Infinity.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toFloat()")!>val prop13 = <!DIVISION_BY_ZERO!>1f / 0<!><!>
|
||||
|
||||
// val prop14: -Infinity.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-Infinity.toFloat()")!>val prop14 = <!DIVISION_BY_ZERO!>-1f / 0<!><!>
|
||||
|
||||
// val prop15: NaN.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toDouble()")!>val prop15 = <!DIVISION_BY_ZERO!>0.0 / 0<!><!>
|
||||
|
||||
// val prop16: NaN.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toFloat()")!>val prop16 = <!DIVISION_BY_ZERO!>0f / 0<!><!>
|
||||
|
||||
// val prop17: NaN.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toDouble()")!>val prop17 = <!DIVISION_BY_ZERO!>-0.0 / 0<!><!>
|
||||
|
||||
// val prop18: NaN.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toDouble()")!>val prop18 = <!DIVISION_BY_ZERO!>1.0 / 0<!> - <!DIVISION_BY_ZERO!>1.0 / 0<!><!>
|
||||
|
||||
// val prop19: NaN.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toFloat()")!>val prop19 = <!DIVISION_BY_ZERO!>1f / 0<!> - <!DIVISION_BY_ZERO!>1f / 0<!><!>
|
||||
|
||||
// val prop20: NaN.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toDouble()")!>val prop20 = <!DIVISION_BY_ZERO!>1.0 % 0<!><!>
|
||||
|
||||
// val prop21: NaN.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toDouble()")!>val prop21 = <!DIVISION_BY_ZERO!>0.0 % 0<!><!>
|
||||
|
||||
// val prop22: NaN.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toFloat()")!>val prop22 = <!DIVISION_BY_ZERO!>1f % 0<!><!>
|
||||
|
||||
// val prop23: NaN.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toDouble()")!>val prop23 = <!DIVISION_BY_ZERO!>-1.0 % 0<!><!>
|
||||
|
||||
// val prop24: NaN.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toDouble()")!>val prop24 = <!DIVISION_BY_ZERO!>-0.0 % 0<!><!>
|
||||
|
||||
// val prop26: NaN.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("NaN.toDouble()")!>val prop26 = <!DIVISION_BY_ZERO!>1.0.rem(0)<!><!>
|
||||
|
||||
// val prop27: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop27 = <!DIVISION_BY_ZERO!>1.0.div(0)<!><!>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int
|
||||
public val prop10: kotlin.Double = Infinity.toDouble()
|
||||
public val prop11: kotlin.Double = Infinity.toDouble()
|
||||
public val prop12: kotlin.Double = -Infinity.toDouble()
|
||||
public val prop13: kotlin.Float = Infinity.toFloat()
|
||||
public val prop14: kotlin.Float = -Infinity.toFloat()
|
||||
public val prop15: kotlin.Double = NaN.toDouble()
|
||||
public val prop16: kotlin.Float = NaN.toFloat()
|
||||
public val prop17: kotlin.Double = NaN.toDouble()
|
||||
public val prop18: kotlin.Double = NaN.toDouble()
|
||||
public val prop19: kotlin.Float = NaN.toFloat()
|
||||
public val prop2: kotlin.Double = Infinity.toDouble()
|
||||
public val prop20: kotlin.Double = NaN.toDouble()
|
||||
public val prop21: kotlin.Double = NaN.toDouble()
|
||||
public val prop22: kotlin.Float = NaN.toFloat()
|
||||
public val prop23: kotlin.Double = NaN.toDouble()
|
||||
public val prop24: kotlin.Double = NaN.toDouble()
|
||||
public val prop26: kotlin.Double = NaN.toDouble()
|
||||
public val prop27: kotlin.Double = Infinity.toDouble()
|
||||
public val prop3: kotlin.Double = Infinity.toDouble()
|
||||
public val prop4: kotlin.Double = 10.0.toDouble()
|
||||
public val prop5: kotlin.Long
|
||||
public val prop6: kotlin.Double = Infinity.toDouble()
|
||||
public val prop7: kotlin.Double = Infinity.toDouble()
|
||||
public val prop8: kotlin.Double = Infinity.toDouble()
|
||||
public val prop9: kotlin.Double = Infinity.toDouble()
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package test
|
||||
|
||||
// val prop4: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop4 = !1.equals(2)<!>
|
||||
@@ -0,0 +1,5 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop4: kotlin.Boolean = true
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package test
|
||||
|
||||
// val prop1: null
|
||||
val prop1 = "".get(0)
|
||||
val prop1 = "".get(0)
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package test
|
||||
|
||||
// val prop1: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop1 = "".get(0)<!>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Char
|
||||
}
|
||||
+1
-1
@@ -52,4 +52,4 @@ fun foo() {
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package test
|
||||
|
||||
// val prop1: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop1 = A().a<!>
|
||||
|
||||
// val prop2: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop2 = A().a + 1<!>
|
||||
|
||||
class A() {
|
||||
val a = 1
|
||||
|
||||
// val prop3: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop3 = a<!>
|
||||
|
||||
// val prop4: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop4 = a + 1<!>
|
||||
|
||||
fun foo() {
|
||||
// val prop5: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop5 = A().a<!>
|
||||
|
||||
// val prop6: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop6 = A().a + 1<!>
|
||||
|
||||
val b = {
|
||||
// val prop11: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop11 = A().a<!>
|
||||
|
||||
// val prop12: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop12 = A().a + 1<!>
|
||||
}
|
||||
|
||||
val c = object: Foo {
|
||||
override fun f() {
|
||||
// val prop9: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop9 = A().a<!>
|
||||
|
||||
// val prop10: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop10 = A().a + 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
// val prop7: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop7 = A().a<!>
|
||||
|
||||
// val prop8: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop8 = A().a + 1<!>
|
||||
}
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int = 1
|
||||
public val prop2: kotlin.Int = 2
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final val a: kotlin.Int = 1
|
||||
public final val prop3: kotlin.Int = 1
|
||||
public final val prop4: kotlin.Int = 2
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface Foo {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package test
|
||||
|
||||
// val prop1: 1.0.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.0.toFloat()")!>val prop1 = 1F<!>
|
||||
|
||||
// val prop2: 1.0.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.0.toFloat()")!>val prop2 = 1.0F<!>
|
||||
|
||||
// val prop3: 0.1.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("0.1.toFloat()")!>val prop3 = 1e-1F<!>
|
||||
|
||||
// val prop4: 0.1.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("0.1.toFloat()")!>val prop4 = 1.0e-1F<!>
|
||||
|
||||
// val prop5: 1.0.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.0.toFloat()")!>val prop5 = 1f<!>
|
||||
|
||||
// val prop6: 1.0.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.0.toFloat()")!>val prop6 = 1.0f<!>
|
||||
|
||||
// val prop7: 0.1.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("0.1.toFloat()")!>val prop7 = 1e-1f<!>
|
||||
|
||||
// val prop8: 0.1.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("0.1.toFloat()")!>val prop8 = 1.0e-1f<!>
|
||||
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Float = 1.0.toFloat()
|
||||
public val prop2: kotlin.Float = 1.0.toFloat()
|
||||
public val prop3: kotlin.Float = 0.1.toFloat()
|
||||
public val prop4: kotlin.Float = 0.1.toFloat()
|
||||
public val prop5: kotlin.Float = 1.0.toFloat()
|
||||
public val prop6: kotlin.Float = 1.0.toFloat()
|
||||
public val prop7: kotlin.Float = 0.1.toFloat()
|
||||
public val prop8: kotlin.Float = 0.1.toFloat()
|
||||
}
|
||||
+2
-2
@@ -13,7 +13,7 @@ val prop3 = java.lang.Float.MAX_VALUE + 1
|
||||
val prop4 = java.lang.Float.MAX_VALUE - 1
|
||||
|
||||
// val prop5: 3.4028235E38.toFloat()
|
||||
val prop5: Int = java.lang.Float.MAX_VALUE + 1
|
||||
val prop5: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>java.lang.Float.MAX_VALUE + 1<!>
|
||||
|
||||
// val prop6: 2.0.toFloat()
|
||||
val prop6: Float = 1.0.toFloat() + 1
|
||||
@@ -22,7 +22,7 @@ val prop6: Float = 1.0.toFloat() + 1
|
||||
val prop7: Double = 1.0 + 1.0
|
||||
|
||||
// val prop8: 2.0.toDouble()
|
||||
val prop8: Float = 1.0.toDouble() + 1.0
|
||||
val prop8: Float = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>1.0.toDouble() + 1.0<!>
|
||||
|
||||
// val prop9: -2.0.toDouble()
|
||||
val prop9: Double = -2.0
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
package test
|
||||
|
||||
// val prop1: 3.4028235E38.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3.4028235E38.toFloat()")!>val prop1: Float = java.lang.Float.MAX_VALUE + 1<!>
|
||||
|
||||
// val prop2: 3.4028234663852886E38.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3.4028234663852886E38.toDouble()")!>val prop2: Double = java.lang.Float.MAX_VALUE + 1.0<!>
|
||||
|
||||
// val prop3: 3.4028235E38.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3.4028235E38.toFloat()")!>val prop3 = java.lang.Float.MAX_VALUE + 1<!>
|
||||
|
||||
// val prop4: 3.4028235E38.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3.4028235E38.toFloat()")!>val prop4 = java.lang.Float.MAX_VALUE - 1<!>
|
||||
|
||||
// val prop5: 3.4028235E38.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3.4028235E38.toFloat()")!>val prop5: Int = <!TYPE_MISMATCH!>java.lang.Float.MAX_VALUE + 1<!><!>
|
||||
|
||||
// val prop6: 2.0.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2.0.toFloat()")!>val prop6: Float = 1.0.toFloat() + 1<!>
|
||||
|
||||
// val prop7: 2.0.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2.0.toDouble()")!>val prop7: Double = 1.0 + 1.0<!>
|
||||
|
||||
// val prop8: 2.0.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2.0.toDouble()")!>val prop8: Float = <!TYPE_MISMATCH!>1.0.toDouble() + 1.0<!><!>
|
||||
|
||||
// val prop9: -2.0.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-2.0.toDouble()")!>val prop9: Double = -2.0<!>
|
||||
|
||||
// val prop10: Infinity.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toFloat()")!>val prop10: Float = <!FLOAT_LITERAL_CONFORMS_INFINITY!>1.2E400F<!><!>
|
||||
|
||||
// val prop11: 0.0.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("0.0.toFloat()")!>val prop11: Float = <!FLOAT_LITERAL_CONFORMS_ZERO!>1.2E-400F<!><!>
|
||||
|
||||
// val prop12: Infinity.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toFloat()")!>val prop12: Float = <!FLOAT_LITERAL_CONFORMS_INFINITY!>11111111111111111111111111111111111111111111111111111111111111111F<!><!>
|
||||
|
||||
// val prop13: 0.0.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("0.0.toFloat()")!>val prop13: Float = <!FLOAT_LITERAL_CONFORMS_ZERO!>0.000000000000000000000000000000000000000000000000000000000000001F<!><!>
|
||||
|
||||
// val prop14: 1.0E-39.toFloat()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.0E-39.toFloat()")!>val prop14: Float = 0.000000000000000000000000000000000000001000000000000000000000000F<!>
|
||||
|
||||
// val prop15: Infinity.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("Infinity.toDouble()")!>val prop15: Double = <!FLOAT_LITERAL_CONFORMS_INFINITY!>1.2E400<!><!>
|
||||
|
||||
// val prop16: 0.0.toDouble()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("0.0.toDouble()")!>val prop16: Double = <!FLOAT_LITERAL_CONFORMS_ZERO!>1.2E-400<!><!>
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Float = 3.4028235E38.toFloat()
|
||||
public val prop10: kotlin.Float = Infinity.toFloat()
|
||||
public val prop11: kotlin.Float = 0.0.toFloat()
|
||||
public val prop12: kotlin.Float = Infinity.toFloat()
|
||||
public val prop13: kotlin.Float = 0.0.toFloat()
|
||||
public val prop14: kotlin.Float = 1.0E-39.toFloat()
|
||||
public val prop15: kotlin.Double = Infinity.toDouble()
|
||||
public val prop16: kotlin.Double = 0.0.toDouble()
|
||||
public val prop2: kotlin.Double = 3.4028234663852886E38.toDouble()
|
||||
public val prop3: kotlin.Float = 3.4028235E38.toFloat()
|
||||
public val prop4: kotlin.Float = 3.4028235E38.toFloat()
|
||||
public val prop5: kotlin.Int = 3.4028235E38.toFloat()
|
||||
public val prop6: kotlin.Float = 2.0.toFloat()
|
||||
public val prop7: kotlin.Double = 2.0.toDouble()
|
||||
public val prop8: kotlin.Float = 2.0.toDouble()
|
||||
public val prop9: kotlin.Double = -2.0.toDouble()
|
||||
}
|
||||
+5
-5
@@ -16,16 +16,16 @@ val prop4 = 0b1L
|
||||
val prop5 = 0B1L
|
||||
|
||||
// val prop6: 1.toLong()
|
||||
val prop6 = 1l
|
||||
val prop6 = 1<!WRONG_LONG_SUFFIX!>l<!>
|
||||
|
||||
// val prop7: 1.toLong()
|
||||
val prop7 = 0x1l
|
||||
val prop7 = 0x1<!WRONG_LONG_SUFFIX!>l<!>
|
||||
|
||||
// val prop8: 1.toLong()
|
||||
val prop8 = 0X1l
|
||||
val prop8 = 0X1<!WRONG_LONG_SUFFIX!>l<!>
|
||||
|
||||
// val prop9: 1.toLong()
|
||||
val prop9 = 0b1l
|
||||
val prop9 = 0b1<!WRONG_LONG_SUFFIX!>l<!>
|
||||
|
||||
// val prop10: 1.toLong()
|
||||
val prop10 = 0B1l
|
||||
val prop10 = 0B1<!WRONG_LONG_SUFFIX!>l<!>
|
||||
@@ -0,0 +1,31 @@
|
||||
package test
|
||||
|
||||
// val prop1: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop1 = 1L<!>
|
||||
|
||||
// val prop2: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop2 = 0x1L<!>
|
||||
|
||||
// val prop3: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop3 = 0X1L<!>
|
||||
|
||||
// val prop4: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop4 = 0b1L<!>
|
||||
|
||||
// val prop5: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop5 = 0B1L<!>
|
||||
|
||||
// val prop6: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop6 = 1<!WRONG_LONG_SUFFIX!>l<!><!>
|
||||
|
||||
// val prop7: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop7 = 0x1<!WRONG_LONG_SUFFIX!>l<!><!>
|
||||
|
||||
// val prop8: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop8 = 0X1<!WRONG_LONG_SUFFIX!>l<!><!>
|
||||
|
||||
// val prop9: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop9 = 0b1<!WRONG_LONG_SUFFIX!>l<!><!>
|
||||
|
||||
// val prop10: 1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1.toLong()")!>val prop10 = 0B1<!WRONG_LONG_SUFFIX!>l<!><!>
|
||||
@@ -0,0 +1,14 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Long = 1.toLong()
|
||||
public val prop10: kotlin.Long = 1.toLong()
|
||||
public val prop2: kotlin.Long = 1.toLong()
|
||||
public val prop3: kotlin.Long = 1.toLong()
|
||||
public val prop4: kotlin.Long = 1.toLong()
|
||||
public val prop5: kotlin.Long = 1.toLong()
|
||||
public val prop6: kotlin.Long = 1.toLong()
|
||||
public val prop7: kotlin.Long = 1.toLong()
|
||||
public val prop8: kotlin.Long = 1.toLong()
|
||||
public val prop9: kotlin.Long = 1.toLong()
|
||||
}
|
||||
+3
-2
@@ -1,3 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
package test
|
||||
|
||||
// val x1: 3
|
||||
@@ -17,7 +18,7 @@ val x5 = 0x1234 and 0x5678
|
||||
|
||||
// Strange result, see KT-13517
|
||||
// val x6: null
|
||||
val x6 = 0x1234 and 0x5678L
|
||||
val x6 = 0x1234 and <!ARGUMENT_TYPE_MISMATCH!>0x5678L<!>
|
||||
|
||||
// val x7: 4656.toLong()
|
||||
val x7 = 0x1234L and 0x5678
|
||||
@@ -26,4 +27,4 @@ val x7 = 0x1234L and 0x5678
|
||||
val x8 = (-123_456_789_321).floorDiv(1_000_000)
|
||||
|
||||
// val x9: 79
|
||||
val x9 = (-123_456_789_321).mod(100)
|
||||
val x9 = (-123_456_789_321).mod(100)
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// WITH_STDLIB
|
||||
package test
|
||||
|
||||
// val x1: 3
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3")!>val x1 = 1 + 2<!>
|
||||
|
||||
// val x2: 3.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3.toLong()")!>val x2 = 1 + 2L<!>
|
||||
|
||||
// val x3: 3
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3")!>val x3 = 1.toShort() + 2.toByte()<!>
|
||||
|
||||
// val x4: 3
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("3")!>val x4 = 1.toByte() + 2.toByte()<!>
|
||||
|
||||
// val x5: 4656
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("4656")!>val x5 = 0x1234 and 0x5678<!>
|
||||
|
||||
// Strange result, see KT-13517
|
||||
// val x6: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val x6 = 0x1234 and <!CONSTANT_EXPECTED_TYPE_MISMATCH!>0x5678L<!><!>
|
||||
|
||||
// val x7: 4656.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("4656.toLong()")!>val x7 = 0x1234L and 0x5678<!>
|
||||
|
||||
// val x8: -123457
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-123457")!>val x8 = (-123_456_789_321).floorDiv(1_000_000)<!>
|
||||
|
||||
// val x9: 79
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("79")!>val x9 = (-123_456_789_321).mod(100)<!>
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val x1: kotlin.Int = 3
|
||||
public val x2: kotlin.Long = 3.toLong()
|
||||
public val x3: kotlin.Int = 3
|
||||
public val x4: kotlin.Int = 3
|
||||
public val x5: kotlin.Int = 4656
|
||||
public val x6: kotlin.Int
|
||||
public val x7: kotlin.Long = 4656.toLong()
|
||||
public val x8: kotlin.Int = -123457
|
||||
public val x9: kotlin.Int = 79
|
||||
}
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
// WITH_STDLIB
|
||||
package test
|
||||
|
||||
// val prop1: 513105426295.toLong()
|
||||
val prop1: Int = 0x7777777777
|
||||
val prop1: Int = <!INITIALIZER_TYPE_MISMATCH!>0x7777777777<!>
|
||||
|
||||
// val prop2: 513105426295.toLong()
|
||||
val prop2: Long = 0x7777777777
|
||||
@@ -10,4 +11,4 @@ val prop2: Long = 0x7777777777
|
||||
val prop3 = 0x7777777777
|
||||
|
||||
// val prop4: 10
|
||||
const val prop4 = '\n'.code
|
||||
const val prop4 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>'\n'.code<!>
|
||||
@@ -0,0 +1,14 @@
|
||||
// WITH_STDLIB
|
||||
package test
|
||||
|
||||
// val prop1: 513105426295.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("513105426295.toLong()")!>val prop1: Int = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>0x7777777777<!><!>
|
||||
|
||||
// val prop2: 513105426295.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("513105426295.toLong()")!>val prop2: Long = 0x7777777777<!>
|
||||
|
||||
// val prop3: 513105426295.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("513105426295.toLong()")!>val prop3 = 0x7777777777<!>
|
||||
|
||||
// val prop4: 10
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("10")!>const val prop4 = '\n'.code<!>
|
||||
@@ -0,0 +1,8 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int = 513105426295.toLong()
|
||||
public val prop2: kotlin.Long = 513105426295.toLong()
|
||||
public val prop3: kotlin.Long = 513105426295.toLong()
|
||||
public const val prop4: kotlin.Int = 10
|
||||
}
|
||||
+1
-1
@@ -50,4 +50,4 @@ fun foo() {
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package test
|
||||
|
||||
class A() {
|
||||
fun foo() {
|
||||
val a = 1
|
||||
|
||||
// val prop5: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop5 = a<!>
|
||||
|
||||
// val prop6: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop6 = a + 1<!>
|
||||
|
||||
fun local() {
|
||||
// val prop1: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop1 = a<!>
|
||||
|
||||
// val prop2: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop2 = a + 1<!>
|
||||
}
|
||||
|
||||
val b = {
|
||||
// val prop3: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop3 = a<!>
|
||||
|
||||
// val prop4: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop4 = a + 1<!>
|
||||
}
|
||||
|
||||
val c = object: Foo {
|
||||
override fun f() {
|
||||
// val prop9: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop9 = a<!>
|
||||
|
||||
// val prop10: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop10 = a + 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
val a = 1
|
||||
|
||||
// val prop7: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop7 = a<!>
|
||||
|
||||
// val prop8: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop8 = a + 1<!>
|
||||
}
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface Foo {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -50,4 +50,4 @@ fun foo() {
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package test
|
||||
|
||||
class A() {
|
||||
fun foo() {
|
||||
var a = 1
|
||||
|
||||
// val prop5: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop5 = a<!>
|
||||
|
||||
// val prop6: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop6 = a + 1<!>
|
||||
|
||||
fun local() {
|
||||
// val prop1: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop1 = a<!>
|
||||
|
||||
// val prop2: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop2 = a + 1<!>
|
||||
}
|
||||
|
||||
val b = {
|
||||
// val prop3: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop3 = a<!>
|
||||
|
||||
// val prop4: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop4 = a + 1<!>
|
||||
}
|
||||
|
||||
val c = object: Foo {
|
||||
override fun f() {
|
||||
// val prop9: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop9 = a<!>
|
||||
|
||||
// val prop10: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop10 = a + 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
var a = 1
|
||||
|
||||
// val prop7: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop7 = a<!>
|
||||
|
||||
// val prop8: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop8 = a + 1<!>
|
||||
}
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface Foo {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -53,4 +53,4 @@ fun foo() {
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package test
|
||||
|
||||
// val prop1: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop1 = A().a<!>
|
||||
|
||||
// val prop2: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop2 = A().a + 1<!>
|
||||
|
||||
class A() {
|
||||
var a = 1
|
||||
|
||||
// val prop3: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop3 = a<!>
|
||||
|
||||
// val prop4: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop4 = a + 1<!>
|
||||
|
||||
fun foo() {
|
||||
// val prop5: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop5 = A().a<!>
|
||||
|
||||
// val prop6: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop6 = A().a + 1<!>
|
||||
|
||||
val b = {
|
||||
// val prop11: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop11 = A().a<!>
|
||||
|
||||
// val prop12: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop12 = A().a + 1<!>
|
||||
}
|
||||
|
||||
val c = object: Foo {
|
||||
override fun f() {
|
||||
// val prop9: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop9 = A().a<!>
|
||||
|
||||
// val prop10: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop10 = A().a + 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
// val prop7: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop7 = A().a<!>
|
||||
|
||||
// val prop8: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop8 = A().a + 1<!>
|
||||
}
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int
|
||||
public val prop2: kotlin.Int
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final var a: kotlin.Int
|
||||
public final val prop3: kotlin.Int
|
||||
public final val prop4: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface Foo {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -45,4 +45,4 @@ fun foo() {
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package test
|
||||
|
||||
// val prop1: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop1 = A.a<!>
|
||||
|
||||
// val prop2: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop2 = A.a + 1<!>
|
||||
|
||||
object A {
|
||||
val a = 1
|
||||
|
||||
// val prop3: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop3 = A.a<!>
|
||||
|
||||
|
||||
// val prop4: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop4 = A.a + 1<!>
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
// val prop5: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop5 = A.a<!>
|
||||
|
||||
// val prop6: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop6 = A.a + 1<!>
|
||||
|
||||
val b = {
|
||||
// val prop11: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop11 = A.a<!>
|
||||
|
||||
// val prop12: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop12 = A.a + 1<!>
|
||||
}
|
||||
|
||||
val c = object: Foo {
|
||||
override fun f() {
|
||||
// val prop9: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop9 = A.a<!>
|
||||
|
||||
// val prop10: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop10 = A.a + 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int = 1
|
||||
public val prop2: kotlin.Int = 2
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public object A {
|
||||
private constructor A()
|
||||
public final val a: kotlin.Int = 1
|
||||
public final val prop3: kotlin.Int = 1
|
||||
public final val prop4: kotlin.Int = 2
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface Foo {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
package test
|
||||
|
||||
enum class MyEnum {
|
||||
@@ -0,0 +1,39 @@
|
||||
// WITH_STDLIB
|
||||
package test
|
||||
|
||||
enum class MyEnum {
|
||||
A
|
||||
}
|
||||
|
||||
// val prop1: \"2\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"2\"")!>val prop1 = "${1 + 1}"<!>
|
||||
|
||||
// val prop2: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop2 = "myEnum=${MyEnum.A}"<!>
|
||||
|
||||
// val prop3: \"1\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"1\"")!>val prop3 = "${1}"<!>
|
||||
|
||||
// val prop4: \"null\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"null\"")!>val prop4 = "${null}"<!>
|
||||
|
||||
// val prop5: \"1.0\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"1.0\"")!>val prop5 = "${1.toFloat()}"<!>
|
||||
|
||||
// val prop6: \"1.0\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"1.0\"")!>val prop6 = "${1.0}"<!>
|
||||
|
||||
// val prop7: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop7 = "${Int::class.java}"<!>
|
||||
|
||||
// val prop8: \"a1.0\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"a1.0\"")!>val prop8 = "a${1.toDouble()}"<!>
|
||||
|
||||
// val prop9: \"ab\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"ab\"")!>val prop9 = "a" + "b"<!>
|
||||
|
||||
// val prop10: \"abb\"
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("\"abb\"")!>val prop10 = prop9 + "b"<!>
|
||||
|
||||
// val prop11: 6
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("6")!>val prop11 = "kotlin".length<!>
|
||||
@@ -0,0 +1,34 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.String = "2"
|
||||
public val prop10: kotlin.String = "abb"
|
||||
public val prop11: kotlin.Int = 6
|
||||
public val prop2: kotlin.String
|
||||
public val prop3: kotlin.String = "1"
|
||||
public val prop4: kotlin.String = "null"
|
||||
public val prop5: kotlin.String = "1.0"
|
||||
public val prop6: kotlin.String = "1.0"
|
||||
public val prop7: kotlin.String
|
||||
public val prop8: kotlin.String = "a1.0"
|
||||
public val prop9: kotlin.String = "ab"
|
||||
|
||||
public final enum class MyEnum : kotlin.Enum<test.MyEnum> {
|
||||
enum entry A
|
||||
|
||||
private constructor MyEnum()
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: test.MyEnum): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.MyEnum!>!
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): test.MyEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.MyEnum>
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -44,4 +44,4 @@ fun foo() {
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package test
|
||||
|
||||
val a = 1
|
||||
|
||||
// val prop1: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop1 = a<!>
|
||||
|
||||
// val prop2: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop2 = a + 1<!>
|
||||
|
||||
class A {
|
||||
// val prop3: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop3 = a<!>
|
||||
|
||||
// val prop4: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop4 = a + 1<!>
|
||||
|
||||
val b = {
|
||||
// val prop11: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop11 = a<!>
|
||||
|
||||
// val prop12: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop12 = a + 1<!>
|
||||
}
|
||||
|
||||
val c = object: Foo {
|
||||
override fun f() {
|
||||
// val prop9: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop9 = a<!>
|
||||
|
||||
// val prop10: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop10 = a + 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
// val prop5: 1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("1")!>val prop5 = a<!>
|
||||
|
||||
// val prop6: 2
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("2")!>val prop6 = a + 1<!>
|
||||
}
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val a: kotlin.Int = 1
|
||||
public val prop1: kotlin.Int = 1
|
||||
public val prop2: kotlin.Int = 2
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final val b: () -> kotlin.Unit
|
||||
public final val c: test.Foo
|
||||
public final val prop3: kotlin.Int = 1
|
||||
public final val prop4: kotlin.Int = 2
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface Foo {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -44,4 +44,4 @@ fun foo() {
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package test
|
||||
|
||||
var a = 1
|
||||
|
||||
// val prop1: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop1 = a<!>
|
||||
|
||||
// val prop2: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop2 = a + 1<!>
|
||||
|
||||
class A {
|
||||
// val prop3: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop3 = a<!>
|
||||
|
||||
// val prop4: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop4 = a + 1<!>
|
||||
|
||||
val b = {
|
||||
// val prop11: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop11 = a<!>
|
||||
|
||||
// val prop12: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop12 = a + 1<!>
|
||||
}
|
||||
|
||||
val c = object: Foo {
|
||||
override fun f() {
|
||||
// val prop9: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop9 = a<!>
|
||||
|
||||
// val prop10: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop10 = a + 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
// val prop5: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop5 = a<!>
|
||||
|
||||
// val prop6: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop6 = a + 1<!>
|
||||
}
|
||||
|
||||
interface Foo {
|
||||
fun f()
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public var a: kotlin.Int
|
||||
public val prop1: kotlin.Int
|
||||
public val prop2: kotlin.Int
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final val b: () -> kotlin.Unit
|
||||
public final val c: test.Foo
|
||||
public final val prop3: kotlin.Int
|
||||
public final val prop4: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface Foo {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package test
|
||||
|
||||
// val p1: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val p1 = -1<!>
|
||||
|
||||
// val p2: -1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toLong()")!>val p2 = -1.toLong()<!>
|
||||
|
||||
// val p3: -1.toByte()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toByte()")!>val p3 = (-1).toByte()<!>
|
||||
|
||||
// val p3a: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val p3a =-1.toByte()<!>
|
||||
|
||||
// val p4: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val p4 = -1.toInt()<!>
|
||||
|
||||
// val p5: -1.toShort()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toShort()")!>val p5 = (-1).toShort()<!>
|
||||
|
||||
// val p5a: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val p5a = -1.toShort()<!>
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val p1: kotlin.Int = -1
|
||||
public val p2: kotlin.Long = -1.toLong()
|
||||
public val p3: kotlin.Byte = -1.toByte()
|
||||
public val p3a: kotlin.Int = -1
|
||||
public val p4: kotlin.Int = -1
|
||||
public val p5: kotlin.Short = -1.toShort()
|
||||
public val p5a: kotlin.Int = -1
|
||||
}
|
||||
Vendored
+63
@@ -0,0 +1,63 @@
|
||||
package test
|
||||
|
||||
// val p1: -1
|
||||
val p1: Int = -1
|
||||
|
||||
// val p2: -1.toLong()
|
||||
val p2: Long = -1
|
||||
|
||||
// val p3: -1.toByte()
|
||||
val p3: Byte = -1
|
||||
|
||||
// val p4: -1.toShort()
|
||||
val p4: Short = -1
|
||||
|
||||
// val l1: -1.toLong()
|
||||
val l1: Long = -1.toLong()
|
||||
|
||||
// val l2: -1.toLong()
|
||||
val l2: Byte = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>-1.toLong()<!>
|
||||
|
||||
// val l3: -1.toLong()
|
||||
val l3: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>-1.toLong()<!>
|
||||
|
||||
// val l4: -1.toLong()
|
||||
val l4: Short = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>-1.toLong()<!>
|
||||
|
||||
|
||||
// val b1: -1
|
||||
val b1: Byte = <!TYPE_MISMATCH!>-1.toByte()<!>
|
||||
|
||||
// val b2: -1
|
||||
val b2: Int = -1.toByte()
|
||||
|
||||
// val b3: -1
|
||||
val b3: Long = <!TYPE_MISMATCH!>-1.toByte()<!>
|
||||
|
||||
// val b4: -1
|
||||
val b4: Short = <!TYPE_MISMATCH!>-1.toByte()<!>
|
||||
|
||||
|
||||
// val i1: -1
|
||||
val i1: Byte = <!TYPE_MISMATCH!>-1.toInt()<!>
|
||||
|
||||
// val i2: -1
|
||||
val i2: Int = -1.toInt()
|
||||
|
||||
// val i3: -1
|
||||
val i3: Long = <!TYPE_MISMATCH!>-1.toInt()<!>
|
||||
|
||||
// val i4: -1
|
||||
val i4: Short = <!TYPE_MISMATCH!>-1.toInt()<!>
|
||||
|
||||
// val s1: -1
|
||||
val s1: Byte = <!TYPE_MISMATCH!>-1.toShort()<!>
|
||||
|
||||
// val s2: -1
|
||||
val s2: Int = -1.toShort()
|
||||
|
||||
// val s3: -1
|
||||
val s3: Long = <!TYPE_MISMATCH!>-1.toShort()<!>
|
||||
|
||||
// val s4: -1
|
||||
val s4: Short = <!TYPE_MISMATCH!>-1.toShort()<!>
|
||||
Vendored
+63
@@ -0,0 +1,63 @@
|
||||
package test
|
||||
|
||||
// val p1: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val p1: Int = -1<!>
|
||||
|
||||
// val p2: -1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toLong()")!>val p2: Long = -1<!>
|
||||
|
||||
// val p3: -1.toByte()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toByte()")!>val p3: Byte = -1<!>
|
||||
|
||||
// val p4: -1.toShort()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toShort()")!>val p4: Short = -1<!>
|
||||
|
||||
// val l1: -1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toLong()")!>val l1: Long = -1.toLong()<!>
|
||||
|
||||
// val l2: -1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toLong()")!>val l2: Byte = <!TYPE_MISMATCH!>-1.toLong()<!><!>
|
||||
|
||||
// val l3: -1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toLong()")!>val l3: Int = <!TYPE_MISMATCH!>-1.toLong()<!><!>
|
||||
|
||||
// val l4: -1.toLong()
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1.toLong()")!>val l4: Short = <!TYPE_MISMATCH!>-1.toLong()<!><!>
|
||||
|
||||
|
||||
// val b1: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val b1: Byte = <!TYPE_MISMATCH!>-1.toByte()<!><!>
|
||||
|
||||
// val b2: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val b2: Int = -1.toByte()<!>
|
||||
|
||||
// val b3: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val b3: Long = <!TYPE_MISMATCH!>-1.toByte()<!><!>
|
||||
|
||||
// val b4: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val b4: Short = <!TYPE_MISMATCH!>-1.toByte()<!><!>
|
||||
|
||||
|
||||
// val i1: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val i1: Byte = <!TYPE_MISMATCH!>-1.toInt()<!><!>
|
||||
|
||||
// val i2: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val i2: Int = -1.toInt()<!>
|
||||
|
||||
// val i3: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val i3: Long = <!TYPE_MISMATCH!>-1.toInt()<!><!>
|
||||
|
||||
// val i4: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val i4: Short = <!TYPE_MISMATCH!>-1.toInt()<!><!>
|
||||
|
||||
// val s1: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val s1: Byte = <!TYPE_MISMATCH!>-1.toShort()<!><!>
|
||||
|
||||
// val s2: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val s2: Int = -1.toShort()<!>
|
||||
|
||||
// val s3: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val s3: Long = <!TYPE_MISMATCH!>-1.toShort()<!><!>
|
||||
|
||||
// val s4: -1
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("-1")!>val s4: Short = <!TYPE_MISMATCH!>-1.toShort()<!><!>
|
||||
Vendored
+24
@@ -0,0 +1,24 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val b1: kotlin.Byte = -1
|
||||
public val b2: kotlin.Int = -1
|
||||
public val b3: kotlin.Long = -1
|
||||
public val b4: kotlin.Short = -1
|
||||
public val i1: kotlin.Byte = -1
|
||||
public val i2: kotlin.Int = -1
|
||||
public val i3: kotlin.Long = -1
|
||||
public val i4: kotlin.Short = -1
|
||||
public val l1: kotlin.Long = -1.toLong()
|
||||
public val l2: kotlin.Byte = -1.toLong()
|
||||
public val l3: kotlin.Int = -1.toLong()
|
||||
public val l4: kotlin.Short = -1.toLong()
|
||||
public val p1: kotlin.Int = -1
|
||||
public val p2: kotlin.Long = -1.toLong()
|
||||
public val p3: kotlin.Byte = -1.toByte()
|
||||
public val p4: kotlin.Short = -1.toShort()
|
||||
public val s1: kotlin.Byte = -1
|
||||
public val s2: kotlin.Int = -1
|
||||
public val s3: kotlin.Long = -1
|
||||
public val s4: kotlin.Short = -1
|
||||
}
|
||||
+1
-1
@@ -10,4 +10,4 @@ val prop2 = -1.toInt()
|
||||
val prop3 = 1 + 1.toByte()
|
||||
|
||||
// val prop4: false
|
||||
val prop4 = 1 + 1.toShort() + 1
|
||||
val prop4 = 1 + 1.toShort() + 1
|
||||
@@ -0,0 +1,13 @@
|
||||
package test
|
||||
|
||||
// val prop1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop1 = 1.toLong() + 1<!>
|
||||
|
||||
// val prop2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop2 = -1.toInt()<!>
|
||||
|
||||
// val prop3: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop3 = 1 + 1.toByte()<!>
|
||||
|
||||
// val prop4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop4 = 1 + 1.toShort() + 1<!>
|
||||
@@ -0,0 +1,8 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Long = 2.toLong()
|
||||
public val prop2: kotlin.Int = -1
|
||||
public val prop3: kotlin.Int = 2
|
||||
public val prop4: kotlin.Int = 3
|
||||
}
|
||||
+1
-1
@@ -6,4 +6,4 @@ val NAMED_CONSTANT = 1
|
||||
val prop1 = NAMED_CONSTANT
|
||||
|
||||
// val prop2: false
|
||||
val prop2 = NAMED_CONSTANT + 1
|
||||
val prop2 = NAMED_CONSTANT + 1
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package test
|
||||
|
||||
val NAMED_CONSTANT = 1
|
||||
|
||||
// val prop1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop1 = NAMED_CONSTANT<!>
|
||||
|
||||
// val prop2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop2 = NAMED_CONSTANT + 1<!>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val NAMED_CONSTANT: kotlin.Int = 1
|
||||
public val prop1: kotlin.Int = 1
|
||||
public val prop2: kotlin.Int = 2
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package test
|
||||
|
||||
// val prop1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop1 = 1.toLong()<!>
|
||||
|
||||
// val prop2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop2 = 1.toInt()<!>
|
||||
|
||||
// val prop3: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop3 = 1.toByte()<!>
|
||||
|
||||
// val prop4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop4 = 1.toShort()<!>
|
||||
|
||||
// val prop5: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop5 = 1.toChar()<!>
|
||||
@@ -0,0 +1,9 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Long = 1.toLong()
|
||||
public val prop2: kotlin.Int = 1
|
||||
public val prop3: kotlin.Byte = 1.toByte()
|
||||
public val prop4: kotlin.Short = 1.toShort()
|
||||
public val prop5: kotlin.Char = \u0001 ('?')
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package test
|
||||
|
||||
// val p1: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val p1 = -1<!>
|
||||
|
||||
// val p2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val p2 = -1.toLong()<!>
|
||||
|
||||
// val p3: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val p3 = -1.toByte()<!>
|
||||
|
||||
// val p4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val p4 = -1.toInt()<!>
|
||||
|
||||
// val p5: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val p5 = -1.toShort()<!>
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val p1: kotlin.Int = -1
|
||||
public val p2: kotlin.Long = -1.toLong()
|
||||
public val p3: kotlin.Int = -1
|
||||
public val p4: kotlin.Int = -1
|
||||
public val p5: kotlin.Int = -1
|
||||
}
|
||||
Vendored
+63
@@ -0,0 +1,63 @@
|
||||
package test
|
||||
|
||||
// val p1: true
|
||||
val p1: Int = -1
|
||||
|
||||
// val p2: true
|
||||
val p2: Long = -1
|
||||
|
||||
// val p3: true
|
||||
val p3: Byte = -1
|
||||
|
||||
// val p4: true
|
||||
val p4: Short = -1
|
||||
|
||||
// val l1: false
|
||||
val l1: Long = -1.toLong()
|
||||
|
||||
// val l2: false
|
||||
val l2: Byte = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>-1.toLong()<!>
|
||||
|
||||
// val l3: false
|
||||
val l3: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>-1.toLong()<!>
|
||||
|
||||
// val l4: false
|
||||
val l4: Short = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>-1.toLong()<!>
|
||||
|
||||
|
||||
// val b1: false
|
||||
val b1: Byte = <!TYPE_MISMATCH!>-1.toByte()<!>
|
||||
|
||||
// val b2: false
|
||||
val b2: Int = -1.toByte()
|
||||
|
||||
// val b3: false
|
||||
val b3: Long = <!TYPE_MISMATCH!>-1.toByte()<!>
|
||||
|
||||
// val b4: false
|
||||
val b4: Short = <!TYPE_MISMATCH!>-1.toByte()<!>
|
||||
|
||||
|
||||
// val i1: false
|
||||
val i1: Byte = <!TYPE_MISMATCH!>-1.toInt()<!>
|
||||
|
||||
// val i2: false
|
||||
val i2: Int = -1.toInt()
|
||||
|
||||
// val i3: false
|
||||
val i3: Long = <!TYPE_MISMATCH!>-1.toInt()<!>
|
||||
|
||||
// val i4: false
|
||||
val i4: Short = <!TYPE_MISMATCH!>-1.toInt()<!>
|
||||
|
||||
// val s1: false
|
||||
val s1: Byte = <!TYPE_MISMATCH!>-1.toShort()<!>
|
||||
|
||||
// val s2: false
|
||||
val s2: Int = -1.toShort()
|
||||
|
||||
// val s3: false
|
||||
val s3: Long = <!TYPE_MISMATCH!>-1.toShort()<!>
|
||||
|
||||
// val s4: false
|
||||
val s4: Short = <!TYPE_MISMATCH!>-1.toShort()<!>
|
||||
Vendored
+63
@@ -0,0 +1,63 @@
|
||||
package test
|
||||
|
||||
// val p1: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val p1: Int = -1<!>
|
||||
|
||||
// val p2: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val p2: Long = -1<!>
|
||||
|
||||
// val p3: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val p3: Byte = -1<!>
|
||||
|
||||
// val p4: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val p4: Short = -1<!>
|
||||
|
||||
// val l1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val l1: Long = -1.toLong()<!>
|
||||
|
||||
// val l2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val l2: Byte = <!TYPE_MISMATCH!>-1.toLong()<!><!>
|
||||
|
||||
// val l3: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val l3: Int = <!TYPE_MISMATCH!>-1.toLong()<!><!>
|
||||
|
||||
// val l4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val l4: Short = <!TYPE_MISMATCH!>-1.toLong()<!><!>
|
||||
|
||||
|
||||
// val b1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val b1: Byte = <!TYPE_MISMATCH!>-1.toByte()<!><!>
|
||||
|
||||
// val b2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val b2: Int = -1.toByte()<!>
|
||||
|
||||
// val b3: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val b3: Long = <!TYPE_MISMATCH!>-1.toByte()<!><!>
|
||||
|
||||
// val b4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val b4: Short = <!TYPE_MISMATCH!>-1.toByte()<!><!>
|
||||
|
||||
|
||||
// val i1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val i1: Byte = <!TYPE_MISMATCH!>-1.toInt()<!><!>
|
||||
|
||||
// val i2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val i2: Int = -1.toInt()<!>
|
||||
|
||||
// val i3: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val i3: Long = <!TYPE_MISMATCH!>-1.toInt()<!><!>
|
||||
|
||||
// val i4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val i4: Short = <!TYPE_MISMATCH!>-1.toInt()<!><!>
|
||||
|
||||
// val s1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val s1: Byte = <!TYPE_MISMATCH!>-1.toShort()<!><!>
|
||||
|
||||
// val s2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val s2: Int = -1.toShort()<!>
|
||||
|
||||
// val s3: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val s3: Long = <!TYPE_MISMATCH!>-1.toShort()<!><!>
|
||||
|
||||
// val s4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val s4: Short = <!TYPE_MISMATCH!>-1.toShort()<!><!>
|
||||
Vendored
+24
@@ -0,0 +1,24 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val b1: kotlin.Byte = -1
|
||||
public val b2: kotlin.Int = -1
|
||||
public val b3: kotlin.Long = -1
|
||||
public val b4: kotlin.Short = -1
|
||||
public val i1: kotlin.Byte = -1
|
||||
public val i2: kotlin.Int = -1
|
||||
public val i3: kotlin.Long = -1
|
||||
public val i4: kotlin.Short = -1
|
||||
public val l1: kotlin.Long = -1.toLong()
|
||||
public val l2: kotlin.Byte = -1.toLong()
|
||||
public val l3: kotlin.Int = -1.toLong()
|
||||
public val l4: kotlin.Short = -1.toLong()
|
||||
public val p1: kotlin.Int = -1
|
||||
public val p2: kotlin.Long = -1.toLong()
|
||||
public val p3: kotlin.Byte = -1.toByte()
|
||||
public val p4: kotlin.Short = -1.toShort()
|
||||
public val s1: kotlin.Byte = -1
|
||||
public val s2: kotlin.Int = -1
|
||||
public val s3: kotlin.Long = -1
|
||||
public val s4: kotlin.Short = -1
|
||||
}
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
package test
|
||||
|
||||
val x = 1
|
||||
val y = "a"
|
||||
|
||||
// val prop1: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop1 = x<!>
|
||||
|
||||
// val prop2: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop2 = y<!>
|
||||
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int = 1
|
||||
public val prop2: kotlin.String = "a"
|
||||
public val x: kotlin.Int = 1
|
||||
public val y: kotlin.String = "a"
|
||||
}
|
||||
+1
-1
@@ -19,4 +19,4 @@ val prop3 = "$x"
|
||||
val prop4 = intArrayOf(1, 2, 3)
|
||||
|
||||
// val prop5: true
|
||||
val prop5 = intArrayOf(1, 2, x, x)
|
||||
val prop5 = intArrayOf(1, 2, x, x)
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package test
|
||||
|
||||
enum class MyEnum { A, B }
|
||||
|
||||
fun foo(): Boolean = true
|
||||
|
||||
val x = 1
|
||||
|
||||
// val prop1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop1 = MyEnum.A<!>
|
||||
|
||||
// val prop2: null
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("null")!>val prop2 = foo()<!>
|
||||
|
||||
// val prop3: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop3 = "$x"<!>
|
||||
|
||||
// val prop4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop4 = intArrayOf(1, 2, 3)<!>
|
||||
|
||||
// val prop5: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop5 = intArrayOf(1, 2, x, x)<!>
|
||||
Vendored
+32
@@ -0,0 +1,32 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: test.MyEnum
|
||||
public val prop2: kotlin.Boolean
|
||||
public val prop3: kotlin.String = "1"
|
||||
public val prop4: kotlin.IntArray
|
||||
public val prop5: kotlin.IntArray
|
||||
public val x: kotlin.Int = 1
|
||||
public fun foo(): kotlin.Boolean
|
||||
|
||||
public final enum class MyEnum : kotlin.Enum<test.MyEnum> {
|
||||
enum entry A
|
||||
|
||||
enum entry B
|
||||
|
||||
private constructor MyEnum()
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: test.MyEnum): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.MyEnum!>!
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): test.MyEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.MyEnum>
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -4,10 +4,10 @@ val x = 1
|
||||
val y = true
|
||||
|
||||
// val prop1: false
|
||||
val prop1 = 1 > 2
|
||||
val prop1 = 1 > 2
|
||||
|
||||
// val prop2: false
|
||||
val prop2 = 2 + 3
|
||||
val prop2 = 2 + 3
|
||||
|
||||
// val prop3: true
|
||||
val prop3 = 2 + x
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
package test
|
||||
|
||||
val x = 1
|
||||
val y = true
|
||||
|
||||
// val prop1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop1 = 1 > 2<!>
|
||||
|
||||
// val prop2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop2 = 2 + 3<!>
|
||||
|
||||
// val prop3: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop3 = 2 + x<!>
|
||||
|
||||
// val prop4: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop4 = x < 2<!>
|
||||
|
||||
// val prop5: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop5 = y && true<!>
|
||||
|
||||
// val prop6: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop6 = true && false || 2 > 1<!>
|
||||
|
||||
// val prop7: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop7 = x == 1<!>
|
||||
|
||||
// val prop8: true
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("true")!>val prop8 = 1 / x<!>
|
||||
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Boolean = false
|
||||
public val prop2: kotlin.Int = 5
|
||||
public val prop3: kotlin.Int = 3
|
||||
public val prop4: kotlin.Boolean = true
|
||||
public val prop5: kotlin.Boolean = true
|
||||
public val prop6: kotlin.Boolean = true
|
||||
public val prop7: kotlin.Boolean = true
|
||||
public val prop8: kotlin.Int = 1
|
||||
public val x: kotlin.Int = 1
|
||||
public val y: kotlin.Boolean = true
|
||||
}
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
package test
|
||||
|
||||
// val prop1: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop1 = 1<!>
|
||||
|
||||
// val prop2: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop2 = "hello"<!>
|
||||
|
||||
// val prop3: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop3 = true<!>
|
||||
|
||||
// val prop4: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop4 = false<!>
|
||||
|
||||
// val prop5: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop5 = -7453<!>
|
||||
|
||||
// val prop6: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop6 = 3.56<!>
|
||||
|
||||
// val prop7: false
|
||||
<!DEBUG_INFO_CONSTANT_VALUE("false")!>val prop7 = 5464564L<!>
|
||||
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public val prop1: kotlin.Int = 1
|
||||
public val prop2: kotlin.String = "hello"
|
||||
public val prop3: kotlin.Boolean = true
|
||||
public val prop4: kotlin.Boolean = false
|
||||
public val prop5: kotlin.Int = -7453
|
||||
public val prop6: kotlin.Double = 3.56.toDouble()
|
||||
public val prop7: kotlin.Long = 5464564.toLong()
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
package test
|
||||
|
||||
// val p1: -1
|
||||
val p1: Int = -1
|
||||
|
||||
// val p2: -1.toLong()
|
||||
val p2: Long = -1
|
||||
|
||||
// val p3: -1.toByte()
|
||||
val p3: Byte = -1
|
||||
|
||||
// val p4: -1.toShort()
|
||||
val p4: Short = -1
|
||||
|
||||
// val l1: -1.toLong()
|
||||
val l1: Long = -1.toLong()
|
||||
|
||||
// val l2: -1.toLong()
|
||||
val l2: Byte = -1.toLong()
|
||||
|
||||
// val l3: -1.toLong()
|
||||
val l3: Int = -1.toLong()
|
||||
|
||||
// val l4: -1.toLong()
|
||||
val l4: Short = -1.toLong()
|
||||
|
||||
|
||||
// val b1: -1
|
||||
val b1: Byte = -1.toByte()
|
||||
|
||||
// val b2: -1
|
||||
val b2: Int = -1.toByte()
|
||||
|
||||
// val b3: -1
|
||||
val b3: Long = -1.toByte()
|
||||
|
||||
// val b4: -1
|
||||
val b4: Short = -1.toByte()
|
||||
|
||||
|
||||
// val i1: -1
|
||||
val i1: Byte = -1.toInt()
|
||||
|
||||
// val i2: -1
|
||||
val i2: Int = -1.toInt()
|
||||
|
||||
// val i3: -1
|
||||
val i3: Long = -1.toInt()
|
||||
|
||||
// val i4: -1
|
||||
val i4: Short = -1.toInt()
|
||||
|
||||
// val s1: -1
|
||||
val s1: Byte = -1.toShort()
|
||||
|
||||
// val s2: -1
|
||||
val s2: Int = -1.toShort()
|
||||
|
||||
// val s3: -1
|
||||
val s3: Long = -1.toShort()
|
||||
|
||||
// val s4: -1
|
||||
val s4: Short = -1.toShort()
|
||||
@@ -1,63 +0,0 @@
|
||||
package test
|
||||
|
||||
// val p1: true
|
||||
val p1: Int = -1
|
||||
|
||||
// val p2: true
|
||||
val p2: Long = -1
|
||||
|
||||
// val p3: true
|
||||
val p3: Byte = -1
|
||||
|
||||
// val p4: true
|
||||
val p4: Short = -1
|
||||
|
||||
// val l1: false
|
||||
val l1: Long = -1.toLong()
|
||||
|
||||
// val l2: false
|
||||
val l2: Byte = -1.toLong()
|
||||
|
||||
// val l3: false
|
||||
val l3: Int = -1.toLong()
|
||||
|
||||
// val l4: false
|
||||
val l4: Short = -1.toLong()
|
||||
|
||||
|
||||
// val b1: false
|
||||
val b1: Byte = -1.toByte()
|
||||
|
||||
// val b2: false
|
||||
val b2: Int = -1.toByte()
|
||||
|
||||
// val b3: false
|
||||
val b3: Long = -1.toByte()
|
||||
|
||||
// val b4: false
|
||||
val b4: Short = -1.toByte()
|
||||
|
||||
|
||||
// val i1: false
|
||||
val i1: Byte = -1.toInt()
|
||||
|
||||
// val i2: false
|
||||
val i2: Int = -1.toInt()
|
||||
|
||||
// val i3: false
|
||||
val i3: Long = -1.toInt()
|
||||
|
||||
// val i4: false
|
||||
val i4: Short = -1.toInt()
|
||||
|
||||
// val s1: false
|
||||
val s1: Byte = -1.toShort()
|
||||
|
||||
// val s2: false
|
||||
val s2: Int = -1.toShort()
|
||||
|
||||
// val s3: false
|
||||
val s3: Long = -1.toShort()
|
||||
|
||||
// val s4: false
|
||||
val s4: Short = -1.toShort()
|
||||
Generated
+220
@@ -4732,6 +4732,226 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ConstantEvaluator {
|
||||
@Test
|
||||
public void testAllFilesPresentInConstantEvaluator() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/constant")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class Constant {
|
||||
@Test
|
||||
public void testAllFilesPresentInConstant() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/constant"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("classObjectProperty.kt")
|
||||
public void testClassObjectProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/classObjectProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("compareTo.kt")
|
||||
public void testCompareTo() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/compareTo.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("differentTypes.kt")
|
||||
public void testDifferentTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/differentTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("divideByZero.kt")
|
||||
public void testDivideByZero() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/divideByZero.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("equals.kt")
|
||||
public void testEquals() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/equals.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exceptionWhenEvaluate.kt")
|
||||
public void testExceptionWhenEvaluate() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/exceptionWhenEvaluate.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("finalProperty.kt")
|
||||
public void testFinalProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/finalProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("float.kt")
|
||||
public void testFloat() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/float.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("floatsAndDoubles.kt")
|
||||
public void testFloatsAndDoubles() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/floatsAndDoubles.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integer.kt")
|
||||
public void testInteger() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integer.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integerOperations.kt")
|
||||
public void testIntegerOperations() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integerOperations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("integers.kt")
|
||||
public void testIntegers() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/integers.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("localVal.kt")
|
||||
public void testLocalVal() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/localVal.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("localVar.kt")
|
||||
public void testLocalVar() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/localVar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonFinalProperty.kt")
|
||||
public void testNonFinalProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/nonFinalProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("objectProperty.kt")
|
||||
public void testObjectProperty() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/objectProperty.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("strings.kt")
|
||||
public void testStrings() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/strings.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelVal.kt")
|
||||
public void testTopLevelVal() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/topLevelVal.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelVar.kt")
|
||||
public void testTopLevelVar() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/topLevelVar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndepWoExpType.kt")
|
||||
public void testUnaryMinusIndepWoExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/unaryMinusIndepWoExpType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndependentExpType.kt")
|
||||
public void testUnaryMinusIndependentExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/constant/unaryMinusIndependentExpType.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/isPure")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class IsPure {
|
||||
@Test
|
||||
public void testAllFilesPresentInIsPure() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/isPure"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("innerToType.kt")
|
||||
public void testInnerToType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/innerToType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("namedConstants.kt")
|
||||
public void testNamedConstants() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/namedConstants.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("toType.kt")
|
||||
public void testToType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/toType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndepWoExpType.kt")
|
||||
public void testUnaryMinusIndepWoExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/unaryMinusIndepWoExpType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("unaryMinusIndependentExpType.kt")
|
||||
public void testUnaryMinusIndependentExpType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/isPure/unaryMinusIndependentExpType.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class UsesVariableAsConstant {
|
||||
@Test
|
||||
public void testAllFilesPresentInUsesVariableAsConstant() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("binaryTypes.kt")
|
||||
public void testBinaryTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/binaryTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("NamedConstants.kt")
|
||||
public void testNamedConstants() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/NamedConstants.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("OtherTypes.kt")
|
||||
public void testOtherTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/OtherTypes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("simpleTypes.kt")
|
||||
public void testSimpleTypes() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/simpleTypes.kt");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/constructorConsistency")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
|
||||
+10
-3
@@ -7,10 +7,8 @@ package org.jetbrains.kotlin.test.directives
|
||||
|
||||
import org.jetbrains.kotlin.test.backend.handlers.JvmBackendDiagnosticsHandler
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_JAVAC
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability.Any
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability.Global
|
||||
import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.ConstantValuesHandler
|
||||
|
||||
object DiagnosticsDirectives : SimpleDirectivesContainer() {
|
||||
val WITH_NEW_INFERENCE by directive(
|
||||
@@ -77,4 +75,13 @@ object DiagnosticsDirectives : SimpleDirectivesContainer() {
|
||||
only if they are defined in testdata.
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
val CHECK_COMPILE_TIME_VALUES by enumDirective<ConstantValuesHandler.Mode>(
|
||||
description = """
|
||||
Enables ${ConstantValuesHandler::class} which renders values from constant
|
||||
evaluator in <!DEBUG_INFO_CONSTANT_VALUE!> meta infos.
|
||||
|
||||
Value determines which context slice should be checked
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.test.frontend.classic.handlers
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import junit.framework.TestCase
|
||||
import org.jetbrains.kotlin.codeMetaInfo.model.ParsedCodeMetaInfo
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.DelegatingBindingTrace
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant
|
||||
import org.jetbrains.kotlin.resolve.constants.StringValue
|
||||
import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.findPackageFragmentForFile
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.CHECK_COMPILE_TIME_VALUES
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
||||
import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||
import org.jetbrains.kotlin.test.model.TestFile
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.globalMetadataInfoHandler
|
||||
|
||||
class ConstantValuesHandler(testServices: TestServices) : ClassicFrontendAnalysisHandler(testServices) {
|
||||
companion object {
|
||||
private const val DEBUG_INFO_CONSTANT = "DEBUG_INFO_CONSTANT_VALUE"
|
||||
private val propertyNameMatchingRegex = """val ([\w\d]+)(: .*)? =""".toRegex()
|
||||
}
|
||||
|
||||
enum class Mode {
|
||||
Constant,
|
||||
IsPure,
|
||||
UsesVariableAsConstant
|
||||
}
|
||||
|
||||
override val directivesContainers: List<DirectivesContainer>
|
||||
get() = listOf(DiagnosticsDirectives)
|
||||
|
||||
private val metaInfoHandler = testServices.globalMetadataInfoHandler
|
||||
|
||||
override fun processModule(module: TestModule, info: ClassicFrontendOutputArtifact) {
|
||||
val mode = module.directives.singleOrZeroValue(CHECK_COMPILE_TIME_VALUES) ?: return
|
||||
|
||||
for ((file, ktFile) in info.ktFiles) {
|
||||
processFile(file, ktFile, info, mode)
|
||||
}
|
||||
}
|
||||
|
||||
private fun processFile(file: TestFile, ktFile: KtFile, info: ClassicFrontendOutputArtifact, mode: Mode) {
|
||||
val expectedMetaInfos = metaInfoHandler.getExistingMetaInfosForFile(file).filter { it.tag == DEBUG_INFO_CONSTANT }
|
||||
val fileText = ktFile.text
|
||||
val packageFragmentDescriptor = info.analysisResult.moduleDescriptor.findPackageFragmentForFile(ktFile) ?: return
|
||||
val bindingContext = info.analysisResult.bindingContext
|
||||
val project = info.project
|
||||
|
||||
val actualMetaInfos = mutableListOf<ParsedCodeMetaInfo>()
|
||||
for (expectedMetaInfo in expectedMetaInfos) {
|
||||
val start = expectedMetaInfo.start
|
||||
val end = expectedMetaInfo.end
|
||||
|
||||
val markedText = fileText.substring(start, end)
|
||||
val propertyName = propertyNameMatchingRegex.find(markedText)?.groups?.get(1)?.value ?: continue
|
||||
val propertyDescriptor = getPropertyDescriptor(packageFragmentDescriptor, propertyName)
|
||||
?: getLocalVarDescriptor(bindingContext, propertyName) ?: continue
|
||||
val actualValue = when (mode) {
|
||||
Mode.Constant -> checkConstant(propertyDescriptor)
|
||||
Mode.IsPure -> checkIsPure(bindingContext, propertyDescriptor, project)
|
||||
Mode.UsesVariableAsConstant -> checkVariableAsConstant(bindingContext, propertyDescriptor, project)
|
||||
}
|
||||
|
||||
actualMetaInfos += ParsedCodeMetaInfo(
|
||||
start,
|
||||
end,
|
||||
attributes = mutableListOf(),
|
||||
tag = DEBUG_INFO_CONSTANT,
|
||||
description = actualValue
|
||||
)
|
||||
}
|
||||
|
||||
metaInfoHandler.addMetadataInfosForFile(file, actualMetaInfos)
|
||||
}
|
||||
|
||||
override fun processAfterAllModules(someAssertionWasFailed: Boolean) {}
|
||||
|
||||
private fun checkConstant(variableDescriptor: VariableDescriptor): String {
|
||||
val compileTimeConstant = variableDescriptor.compileTimeInitializer
|
||||
return if (compileTimeConstant is StringValue) {
|
||||
"\\\"${compileTimeConstant.value}\\\""
|
||||
} else {
|
||||
"$compileTimeConstant"
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkIsPure(bindingContext: BindingContext, variableDescriptor: VariableDescriptor, project: Project): String {
|
||||
return evaluateInitializer(bindingContext, variableDescriptor, project)?.isPure.toString()
|
||||
}
|
||||
|
||||
private fun checkVariableAsConstant(bindingContext: BindingContext, variableDescriptor: VariableDescriptor, project: Project): String {
|
||||
return evaluateInitializer(bindingContext, variableDescriptor, project)?.usesVariableAsConstant.toString()
|
||||
}
|
||||
|
||||
private fun evaluateInitializer(context: BindingContext, property: VariableDescriptor, project: Project): CompileTimeConstant<*>? {
|
||||
val propertyDeclaration = DescriptorToSourceUtils.descriptorToDeclaration(property) as KtProperty
|
||||
return ConstantExpressionEvaluator(property.module, LanguageVersionSettingsImpl.DEFAULT, project).evaluateExpression(
|
||||
propertyDeclaration.initializer!!,
|
||||
DelegatingBindingTrace(context, "trace for evaluating compile time constant"),
|
||||
property.type
|
||||
)
|
||||
}
|
||||
|
||||
private fun getPropertyDescriptor(packageView: PackageFragmentDescriptor, name: String): PropertyDescriptor? {
|
||||
val propertyName = Name.identifier(name)
|
||||
val memberScope = packageView.getMemberScope()
|
||||
var properties: Collection<PropertyDescriptor?> = memberScope.getContributedVariables(propertyName, NoLookupLocation.FROM_TEST)
|
||||
if (properties.isEmpty()) {
|
||||
for (descriptor in DescriptorUtils.getAllDescriptors(memberScope)) {
|
||||
if (descriptor is ClassDescriptor) {
|
||||
val classProperties: Collection<PropertyDescriptor?> = descriptor.getMemberScope(emptyList())
|
||||
.getContributedVariables(propertyName, NoLookupLocation.FROM_TEST)
|
||||
if (!classProperties.isEmpty()) {
|
||||
properties = classProperties
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (properties.size != 1) {
|
||||
return null
|
||||
}
|
||||
return properties.iterator().next()
|
||||
}
|
||||
|
||||
private fun getLocalVarDescriptor(context: BindingContext, name: String): VariableDescriptor? {
|
||||
for (descriptor in context.getSliceContents(BindingContext.VARIABLE).values) {
|
||||
if (descriptor.name.asString() == name) {
|
||||
return descriptor
|
||||
}
|
||||
}
|
||||
TestCase.fail("Failed to find local variable $name")
|
||||
return null
|
||||
}
|
||||
}
|
||||
+29
-5
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.config.ExplicitApiMode
|
||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||
import org.jetbrains.kotlin.test.TestJdkKind
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.CHECK_COMPILE_TIME_VALUES
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_JVM_DIAGNOSTICS_ON_FRONTEND
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.JDK_KIND
|
||||
@@ -17,12 +17,10 @@ import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirective
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.WITH_REFLECT
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.WITH_STDLIB
|
||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.EXPLICIT_API_MODE
|
||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.LANGUAGE
|
||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.USE_EXPERIMENTAL
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.DeclarationsDumpHandler
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.FirTestDataConsistencyHandler
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.OldNewInferenceMetaInfoProcessor
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.*
|
||||
import org.jetbrains.kotlin.test.model.DependencyKind
|
||||
import org.jetbrains.kotlin.test.model.FrontendKinds
|
||||
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
|
||||
@@ -76,6 +74,7 @@ abstract class AbstractDiagnosticTest : AbstractKotlinCompilerTest() {
|
||||
useFrontendHandlers(
|
||||
::DeclarationsDumpHandler,
|
||||
::ClassicDiagnosticsHandler,
|
||||
::ConstantValuesHandler
|
||||
)
|
||||
|
||||
useAfterAnalysisCheckers(::FirTestDataConsistencyHandler)
|
||||
@@ -112,5 +111,30 @@ abstract class AbstractDiagnosticTest : AbstractKotlinCompilerTest() {
|
||||
+WITH_REFLECT
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------- constant evaluation tests -----------------------
|
||||
forTestsMatching("compiler/testData/diagnostics/tests/constantEvaluator/*") {
|
||||
defaultDirectives {
|
||||
LANGUAGE with "-ApproximateIntegerLiteralTypesInReceiverPosition"
|
||||
}
|
||||
}
|
||||
|
||||
forTestsMatching("compiler/testData/diagnostics/tests/constantEvaluator/constant/*") {
|
||||
defaultDirectives {
|
||||
CHECK_COMPILE_TIME_VALUES with ConstantValuesHandler.Mode.Constant
|
||||
}
|
||||
}
|
||||
|
||||
forTestsMatching("compiler/testData/diagnostics/tests/constantEvaluator/isPure/*") {
|
||||
defaultDirectives {
|
||||
CHECK_COMPILE_TIME_VALUES with ConstantValuesHandler.Mode.IsPure
|
||||
}
|
||||
}
|
||||
|
||||
forTestsMatching("compiler/testData/diagnostics/tests/constantEvaluator/usesVariableAsConstant/*") {
|
||||
defaultDirectives {
|
||||
CHECK_COMPILE_TIME_VALUES with ConstantValuesHandler.Mode.UsesVariableAsConstant
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-117
@@ -1,117 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.resolve.constants.evaluate
|
||||
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||
import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.DelegatingBindingTrace
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
import org.jetbrains.kotlin.resolve.annotation.AbstractAnnotationDescriptorResolveTest
|
||||
import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant
|
||||
import org.jetbrains.kotlin.resolve.constants.StringValue
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import java.io.File
|
||||
import java.util.regex.Pattern
|
||||
|
||||
abstract class AbstractCompileTimeConstantEvaluatorTest : AbstractAnnotationDescriptorResolveTest() {
|
||||
|
||||
// Test directives should look like [// val testedPropertyName: expectedValue]
|
||||
fun doConstantTest(path: String) {
|
||||
doTest(path) {
|
||||
property, _ ->
|
||||
val compileTimeConstant = property.compileTimeInitializer
|
||||
if (compileTimeConstant is StringValue) {
|
||||
"\\\"${compileTimeConstant.value}\\\""
|
||||
} else {
|
||||
"$compileTimeConstant"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Test directives should look like [// val testedPropertyName: expectedValue]
|
||||
fun doIsPureTest(path: String) {
|
||||
doTest(path) {
|
||||
property, context ->
|
||||
evaluateInitializer(context, property)?.isPure.toString()
|
||||
}
|
||||
}
|
||||
|
||||
// Test directives should look like [// val testedPropertyName: expectedValue]
|
||||
fun doUsesVariableAsConstantTest(path: String) {
|
||||
doTest(path) {
|
||||
property, context ->
|
||||
evaluateInitializer(context, property)?.usesVariableAsConstant.toString()
|
||||
}
|
||||
}
|
||||
|
||||
private fun evaluateInitializer(context: BindingContext, property: VariableDescriptor): CompileTimeConstant<*>? {
|
||||
val propertyDeclaration = DescriptorToSourceUtils.descriptorToDeclaration(property) as KtProperty
|
||||
return ConstantExpressionEvaluator(property.module, LanguageVersionSettingsImpl.DEFAULT, project).evaluateExpression(
|
||||
propertyDeclaration.initializer!!,
|
||||
DelegatingBindingTrace(context, "trace for evaluating compile time constant"),
|
||||
property.type
|
||||
)
|
||||
}
|
||||
|
||||
private fun doTest(path: String, getValueToTest: (VariableDescriptor, BindingContext) -> String) {
|
||||
val myFile = File(path)
|
||||
val fileText = FileUtil.loadFile(myFile, true)
|
||||
val packageView = getPackage(fileText)
|
||||
|
||||
val propertiesForTest = getObjectsToTest(fileText)
|
||||
|
||||
val expectedActual = arrayListOf<Pair<String, String>>()
|
||||
|
||||
for (propertyName in propertiesForTest) {
|
||||
val expectedPropertyPrefix = "// val ${propertyName}: "
|
||||
val expected = InTextDirectivesUtils.findStringWithPrefixes(fileText, expectedPropertyPrefix)
|
||||
assertNotNull(expected, "Failed to find expected directive: $expectedPropertyPrefix")
|
||||
|
||||
val property = AbstractAnnotationDescriptorResolveTest.getPropertyDescriptor(packageView, propertyName, false)
|
||||
?: AbstractAnnotationDescriptorResolveTest.getLocalVarDescriptor(context!!, propertyName)
|
||||
|
||||
val testedObject = getValueToTest(property, context!!)
|
||||
expectedActual.add(expectedPropertyPrefix + expected!! to expectedPropertyPrefix + testedObject)
|
||||
}
|
||||
|
||||
var actualFileText = fileText
|
||||
for ((expected, actual) in expectedActual) {
|
||||
assert(actualFileText.contains(expected)) { "File text should contain $expected" }
|
||||
actualFileText = actualFileText.replace(expected, actual)
|
||||
}
|
||||
|
||||
KotlinTestUtils.assertEqualsToFile(myFile, actualFileText)
|
||||
}
|
||||
|
||||
fun getObjectsToTest(fileText: String): List<String> {
|
||||
return InTextDirectivesUtils.findListWithPrefixes(fileText, "// val").map {
|
||||
val matcher = pattern.matcher(it)
|
||||
if (matcher.find()) {
|
||||
matcher.group(0) ?: "Couldn't match tested object $it"
|
||||
} else "Couldn't match tested object $it"
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
val pattern = Pattern.compile(".+(?=:)")
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user