added different errors instead of ERROR_COMPILE_TIME_VALUE with different text
check type for constants in DataFlowUtils
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
fun test(<!UNUSED_PARAMETER!>c<!> : Char) {
|
||||
test(<!ERROR_COMPILE_TIME_VALUE!>''<!>)
|
||||
test(<!EMPTY_CHARACTER_LITERAL!>''<!>)
|
||||
test('a')
|
||||
test(<!ERROR_COMPILE_TIME_VALUE!>'aa'<!>)
|
||||
test(<!ERROR_COMPILE_TIME_VALUE!>'a)<!>
|
||||
<!UNRESOLVED_REFERENCE!>test<!>(<!ERROR_COMPILE_TIME_VALUE!>'<!>
|
||||
test(<!TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL!>'aa'<!>)
|
||||
test(<!INCORRECT_CHARACTER_LITERAL!>'a)<!>
|
||||
<!UNRESOLVED_REFERENCE!>test<!>(<!INCORRECT_CHARACTER_LITERAL!>'<!>
|
||||
<!UNRESOLVED_REFERENCE!>test<!>(0<!SYNTAX!><!SYNTAX!><!>'<!>
|
||||
test('\n')
|
||||
test('\\')
|
||||
test(<!ERROR_COMPILE_TIME_VALUE!>''<!><!SYNTAX!>''<!><!SYNTAX!>)<!>
|
||||
test(<!EMPTY_CHARACTER_LITERAL!>''<!><!SYNTAX!>''<!><!SYNTAX!>)<!>
|
||||
test('\'')
|
||||
test('\"')
|
||||
}
|
||||
|
||||
@@ -25,20 +25,20 @@ fun test() {
|
||||
1e5: Double
|
||||
1e-5: Float
|
||||
|
||||
<!ERROR_COMPILE_TIME_VALUE!>1<!>: Double
|
||||
<!ERROR_COMPILE_TIME_VALUE!>1<!>: Float
|
||||
<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>: Double
|
||||
<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>: Float
|
||||
|
||||
1 <!USELESS_CAST!>as<!> Byte
|
||||
1 <!USELESS_CAST!>as<!> Int
|
||||
0xff <!USELESS_CAST!>as<!> Long
|
||||
|
||||
<!ERROR_COMPILE_TIME_VALUE!>1.1<!> <!CAST_NEVER_SUCCEEDS!>as<!> Int
|
||||
<!ERROR_COMPILE_TIME_VALUE!>1.1<!>: Int
|
||||
<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1.1<!> <!CAST_NEVER_SUCCEEDS!>as<!> Int
|
||||
<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1.1<!>: Int
|
||||
|
||||
varargByte(0x77, 1, 3, <!ERROR_COMPILE_TIME_VALUE!>200<!>, 0b111)
|
||||
varargShort(0x777, 1, 2, 3, <!ERROR_COMPILE_TIME_VALUE!>200000<!>, 0b111)
|
||||
varargInt(0x77777777, <!ERROR_COMPILE_TIME_VALUE!>0x7777777777<!>, 1, 2, 3, 2000000000, 0b111)
|
||||
varargByte(0x77, 1, 3, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>200<!>, 0b111)
|
||||
varargShort(0x777, 1, 2, 3, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>200000<!>, 0b111)
|
||||
varargInt(0x77777777, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>0x7777777777<!>, 1, 2, 3, 2000000000, 0b111)
|
||||
varargLong(0x777777777777, 1, 2, 3, 200000, 0b111)
|
||||
varargFloat(<!ERROR_COMPILE_TIME_VALUE!>1<!>, 1.0, <!TYPE_MISMATCH!>-0.1<!>, 1e4, 1e-4, <!TYPE_MISMATCH!>-1e4<!>)
|
||||
varargDouble(<!ERROR_COMPILE_TIME_VALUE!>1<!>, 1.0, -0.1, 1e4, 1e-4, -1e4)
|
||||
varargFloat(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, 1.0, <!TYPE_MISMATCH!>-0.1<!>, 1e4, 1e-4, <!TYPE_MISMATCH!>-1e4<!>)
|
||||
varargDouble(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, 1.0, -0.1, 1e4, 1e-4, -1e4)
|
||||
}
|
||||
@@ -2,11 +2,11 @@
|
||||
// KT-451 Incorrect character literals cause assertion failures
|
||||
|
||||
fun ff() {
|
||||
val <!UNUSED_VARIABLE!>b<!> = <!ERROR_COMPILE_TIME_VALUE!>''<!>
|
||||
val <!UNUSED_VARIABLE!>c<!> = <!ERROR_COMPILE_TIME_VALUE!>'23'<!>
|
||||
val <!UNUSED_VARIABLE!>d<!> = <!ERROR_COMPILE_TIME_VALUE!>'a<!>
|
||||
val <!UNUSED_VARIABLE!>e<!> = <!ERROR_COMPILE_TIME_VALUE!>'ab<!>
|
||||
val <!UNUSED_VARIABLE!>f<!> = <!ERROR_COMPILE_TIME_VALUE!>'\'<!>
|
||||
val <!UNUSED_VARIABLE!>b<!> = <!EMPTY_CHARACTER_LITERAL!>''<!>
|
||||
val <!UNUSED_VARIABLE!>c<!> = <!TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL!>'23'<!>
|
||||
val <!UNUSED_VARIABLE!>d<!> = <!INCORRECT_CHARACTER_LITERAL!>'a<!>
|
||||
val <!UNUSED_VARIABLE!>e<!> = <!INCORRECT_CHARACTER_LITERAL!>'ab<!>
|
||||
val <!UNUSED_VARIABLE!>f<!> = <!ILLEGAL_ESCAPE!>'\'<!>
|
||||
}
|
||||
|
||||
fun test() {
|
||||
@@ -19,19 +19,19 @@ fun test() {
|
||||
<!UNUSED_EXPRESSION!>'\''<!>
|
||||
<!UNUSED_EXPRESSION!>'\\'<!>
|
||||
<!UNUSED_EXPRESSION!>'\$'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\x'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\123'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\ra'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\000'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\000'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\x'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\123'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\ra'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\000'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\000'<!>
|
||||
<!UNUSED_EXPRESSION!>'\u0000'<!>
|
||||
<!UNUSED_EXPRESSION!>'\u000a'<!>
|
||||
<!UNUSED_EXPRESSION!>'\u000A'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\u'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\u0'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\u00'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\u000'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\u000z'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\\u000'<!>
|
||||
<!ERROR_COMPILE_TIME_VALUE, UNUSED_EXPRESSION!>'\'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\u'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\u0'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\u00'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\u000'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\u000z'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\\u000'<!>
|
||||
<!ILLEGAL_ESCAPE, UNUSED_EXPRESSION!>'\'<!>
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ fun test(<!UNUSED_PARAMETER!>l<!> : <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>java.util
|
||||
Collections.<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>emptyList<!>()
|
||||
|
||||
Collections.singleton<Int>(1) : Set<Int>?
|
||||
Collections.singleton<Int>(<!ERROR_COMPILE_TIME_VALUE!>1.0<!>)
|
||||
Collections.singleton<Int>(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1.0<!>)
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>List<!><Int>
|
||||
|
||||
|
||||
@@ -11,12 +11,12 @@ fun demo() {
|
||||
<!UNUSED_EXPRESSION!>"$"<!>
|
||||
<!UNUSED_EXPRESSION!>"$.$.asdf$\t"<!>
|
||||
<!UNUSED_EXPRESSION!>"asd\$"<!>
|
||||
<!UNUSED_EXPRESSION!>"asd$a<!ILLEGAL_ESCAPE_SEQUENCE!>\x<!>"<!>
|
||||
<!UNUSED_EXPRESSION!>"asd$a<!ILLEGAL_ESCAPE!>\x<!>"<!>
|
||||
<!UNUSED_EXPRESSION!>"asd$a$asd$ $<!UNRESOLVED_REFERENCE!>xxx<!>"<!>
|
||||
<!UNUSED_EXPRESSION!>"fosdfasdo${1 + bar + 100}}sdsdfgdsfsdf"<!>
|
||||
<!UNUSED_EXPRESSION!>"foo${bar + map {foo}}sdfsdf"<!>
|
||||
<!UNUSED_EXPRESSION!>"foo${bar + map { "foo" }}sdfsdf"<!>
|
||||
<!UNUSED_EXPRESSION!>"foo${bar + map {
|
||||
"foo$sdf${ buzz{}}" }}sdfsdf"<!>
|
||||
<!UNUSED_EXPRESSION!>"a<!ILLEGAL_ESCAPE_SEQUENCE!>\u<!> <!ILLEGAL_ESCAPE_SEQUENCE!>\u<!>0 <!ILLEGAL_ESCAPE_SEQUENCE!>\u<!>00 <!ILLEGAL_ESCAPE_SEQUENCE!>\u<!>000 \u0000 \u0AaA <!ILLEGAL_ESCAPE_SEQUENCE!>\u<!>0AAz.length( ) + \u0022b"<!>
|
||||
<!UNUSED_EXPRESSION!>"a<!ILLEGAL_ESCAPE!>\u<!> <!ILLEGAL_ESCAPE!>\u<!>0 <!ILLEGAL_ESCAPE!>\u<!>00 <!ILLEGAL_ESCAPE!>\u<!>000 \u0000 \u0AaA <!ILLEGAL_ESCAPE!>\u<!>0AAz.length( ) + \u0022b"<!>
|
||||
}
|
||||
@@ -10,7 +10,7 @@ fun test() {
|
||||
v1()
|
||||
v1({})
|
||||
v1({}, {})
|
||||
v1({}, <!ERROR_COMPILE_TIME_VALUE!>1<!>, {})
|
||||
v1({}, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, {})
|
||||
v1({}, {}, {it})
|
||||
v1({}) <!VARARG_OUTSIDE_PARENTHESES, DANGLING_FUNCTION_LITERAL_ARGUMENT_SUSPECTED!>{}<!>
|
||||
v1 <!VARARG_OUTSIDE_PARENTHESES, DANGLING_FUNCTION_LITERAL_ARGUMENT_SUSPECTED!>{}<!>
|
||||
|
||||
@@ -12,17 +12,17 @@ fun test() {
|
||||
|
||||
bar <!TOO_MANY_ARGUMENTS, DANGLING_FUNCTION_LITERAL_ARGUMENT_SUSPECTED!>{ }<!>
|
||||
|
||||
foo(<!TYPE_MISMATCH!>""<!>, <!ERROR_COMPILE_TIME_VALUE!>1<!>, <!UNRESOLVED_REFERENCE, TOO_MANY_ARGUMENTS!>xx<!>)
|
||||
foo(<!TYPE_MISMATCH!>""<!>, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, <!UNRESOLVED_REFERENCE, TOO_MANY_ARGUMENTS!>xx<!>)
|
||||
|
||||
foo(<!NAMED_PARAMETER_NOT_FOUND!>r<!> = <!UNRESOLVED_REFERENCE!>xx<!>, i = <!TYPE_MISMATCH!>""<!>, s = "")
|
||||
|
||||
foo(i = 1, <!ARGUMENT_PASSED_TWICE!>i<!> = 1, s = <!ERROR_COMPILE_TIME_VALUE!>11<!>)
|
||||
foo(i = 1, <!ARGUMENT_PASSED_TWICE!>i<!> = 1, s = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>11<!>)
|
||||
|
||||
foo(<!TYPE_MISMATCH!>""<!>, s = <!ERROR_COMPILE_TIME_VALUE!>2<!>)
|
||||
foo(<!TYPE_MISMATCH!>""<!>, s = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>2<!>)
|
||||
|
||||
foo(i = <!TYPE_MISMATCH!>""<!>, s = <!ERROR_COMPILE_TIME_VALUE!>2<!>, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>33<!>)
|
||||
foo(i = <!TYPE_MISMATCH!>""<!>, s = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>2<!>, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>33<!>)
|
||||
|
||||
foo(<!TYPE_MISMATCH!>""<!>, <!ERROR_COMPILE_TIME_VALUE!>1<!>) <!TOO_MANY_ARGUMENTS!>{}<!>
|
||||
foo(<!TYPE_MISMATCH!>""<!>, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>) <!TOO_MANY_ARGUMENTS!>{}<!>
|
||||
|
||||
foo(<!TYPE_MISMATCH!>""<!>, <!ERROR_COMPILE_TIME_VALUE!>1<!>) <!TOO_MANY_ARGUMENTS!>{}<!> <!MANY_FUNCTION_LITERAL_ARGUMENTS!>{}<!>
|
||||
foo(<!TYPE_MISMATCH!>""<!>, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>) <!TOO_MANY_ARGUMENTS!>{}<!> <!MANY_FUNCTION_LITERAL_ARGUMENTS!>{}<!>
|
||||
}
|
||||
@@ -6,7 +6,7 @@ fun bar<T>(a: T, b: Map<T, String>) = b.get(a)
|
||||
|
||||
fun test(a: Int) {
|
||||
foo(a, null)
|
||||
bar(a, <!ERROR_COMPILE_TIME_VALUE!>null<!>)
|
||||
bar(a, <!NULL_FOR_NONNULL_TYPE!>null<!>)
|
||||
}
|
||||
fun test1(a: Int) {
|
||||
<!UNREACHABLE_CODE!>foo(a, throw Exception())<!>
|
||||
|
||||
+1
-1
@@ -18,6 +18,6 @@ public class Y extends X<String> {
|
||||
|
||||
fun main() {
|
||||
Y().fooN() : Any
|
||||
Y().barN(<!ERROR_COMPILE_TIME_VALUE!>null<!>);
|
||||
Y().barN(<!NULL_FOR_NONNULL_TYPE!>null<!>);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -18,6 +18,6 @@ public class Y extends X<A> {
|
||||
|
||||
fun main() {
|
||||
Y().fooN() : Any
|
||||
Y().barN(<!ERROR_COMPILE_TIME_VALUE!>null<!>);
|
||||
Y().barN(<!NULL_FOR_NONNULL_TYPE!>null<!>);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,12 +5,12 @@ fun foo(i: Int) = i
|
||||
fun bar(l: Long) = l
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val <!UNUSED_VARIABLE!>i<!> = <!ERROR_COMPILE_TIME_VALUE!>111111111111111777777777777777<!>
|
||||
val <!UNUSED_VARIABLE!>i<!> = <!INT_LITERAL_OUT_OF_RANGE!>111111111111111777777777777777<!>
|
||||
|
||||
//todo add diagnostic text messages
|
||||
//report only 'The value is out of range'
|
||||
//not 'An integer literal does not conform to the expected type Int/Long'
|
||||
val <!UNUSED_VARIABLE!>l<!>: Long = <!ERROR_COMPILE_TIME_VALUE!>1111111111111117777777777777777<!>
|
||||
foo(<!ERROR_COMPILE_TIME_VALUE!>11111111111111177777777777777<!>)
|
||||
bar(<!ERROR_COMPILE_TIME_VALUE!>11111111111111177777777777777<!>)
|
||||
val <!UNUSED_VARIABLE!>l<!>: Long = <!INT_LITERAL_OUT_OF_RANGE!>1111111111111117777777777777777<!>
|
||||
foo(<!INT_LITERAL_OUT_OF_RANGE!>11111111111111177777777777777<!>)
|
||||
bar(<!INT_LITERAL_OUT_OF_RANGE!>11111111111111177777777777777<!>)
|
||||
}
|
||||
|
||||
@@ -26,9 +26,9 @@ fun test() {
|
||||
|
||||
val <!UNUSED_VARIABLE!>g<!>: Byte = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>either<!>(1, 300)
|
||||
|
||||
other(<!ERROR_COMPILE_TIME_VALUE!>11<!>)
|
||||
other(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>11<!>)
|
||||
|
||||
<!TYPE_INFERENCE_TYPE_CONSTRUCTOR_MISMATCH!>otherGeneric<!>(<!ERROR_COMPILE_TIME_VALUE!>1<!>)
|
||||
<!TYPE_INFERENCE_TYPE_CONSTRUCTOR_MISMATCH!>otherGeneric<!>(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>)
|
||||
|
||||
val r = either(1, "")
|
||||
<!TYPE_MISMATCH!>r<!>: Int
|
||||
|
||||
@@ -8,9 +8,9 @@ fun main(args : Array<String>) {
|
||||
val <!UNUSED_VARIABLE!>h<!> : String = <!TYPE_MISMATCH!>v--<!>;
|
||||
val <!UNUSED_VARIABLE!>h1<!> : String = <!TYPE_MISMATCH!>--v<!>;
|
||||
val <!UNUSED_VARIABLE!>i<!> : String = <!TYPE_MISMATCH!>!true<!>;
|
||||
val <!UNUSED_VARIABLE!>j<!> : String = <!TYPE_MISMATCH!>@foo <!ERROR_COMPILE_TIME_VALUE!>true<!><!>;
|
||||
val <!UNUSED_VARIABLE!>j1<!> : String = <!TYPE_MISMATCH!>@ <!ERROR_COMPILE_TIME_VALUE!>true<!><!>;
|
||||
val <!UNUSED_VARIABLE!>j2<!> : String = <!TYPE_MISMATCH!>@@ <!ERROR_COMPILE_TIME_VALUE!>true<!><!>;
|
||||
val <!UNUSED_VARIABLE!>j<!> : String = <!TYPE_MISMATCH!>@foo <!CONSTANT_EXPECTED_TYPE_MISMATCH!>true<!><!>;
|
||||
val <!UNUSED_VARIABLE!>j1<!> : String = <!TYPE_MISMATCH!>@ <!CONSTANT_EXPECTED_TYPE_MISMATCH!>true<!><!>;
|
||||
val <!UNUSED_VARIABLE!>j2<!> : String = <!TYPE_MISMATCH!>@@ <!CONSTANT_EXPECTED_TYPE_MISMATCH!>true<!><!>;
|
||||
val <!UNUSED_VARIABLE!>k<!> : String = <!TYPE_MISMATCH!>-1<!>;
|
||||
val <!UNUSED_VARIABLE!>l<!> : String = <!TYPE_MISMATCH!>+1<!>;
|
||||
}
|
||||
@@ -35,7 +35,7 @@ fun t3() : String {
|
||||
<!RETURN_NOT_ALLOWED!>return@t3 "1"<!>
|
||||
}
|
||||
else {
|
||||
<!RETURN_NOT_ALLOWED!>return <!ERROR_COMPILE_TIME_VALUE!>2<!><!>
|
||||
<!RETURN_NOT_ALLOWED!>return <!CONSTANT_EXPECTED_TYPE_MISMATCH!>2<!><!>
|
||||
}
|
||||
<!RETURN_NOT_ALLOWED_EXPLICIT_RETURN_TYPE_REQUIRED!>return@ 0<!>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user