[FIR] Implement INCORRECT_CHARACTER_LITERAL, EMPTY_CHARACTER_LITERAL, TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL, ILLEGAL_ESCAPE, ILLEGAL_ESCAPE_SEQUENCE diagnostics, fix tests

This commit is contained in:
Ivan Kochurkin
2021-04-06 15:11:31 +03:00
committed by TeamCityServer
parent 91d42fe345
commit 404c69ded7
17 changed files with 181 additions and 70 deletions
@@ -4,28 +4,28 @@
// TESTCASE NUMBER: 1
fun case1() {
val c = <!ILLEGAL_CONST_EXPRESSION!>''<!>
val c = <!EMPTY_CHARACTER_LITERAL!>''<!>
}
// TESTCASE NUMBER: 2
fun case2() {
val c2: Char = <!ILLEGAL_CONST_EXPRESSION!>''<!><!SYNTAX!>'<!>
val c3: Char = <!ILLEGAL_CONST_EXPRESSION!>'\'<!>
val c2: Char = <!EMPTY_CHARACTER_LITERAL!>''<!><!SYNTAX!>'<!>
val c3: Char = <!ILLEGAL_ESCAPE!>'\'<!>
}
// TESTCASE NUMBER: 3
fun case3() {
val c1: Char = <!ILLEGAL_CONST_EXPRESSION!>'B a'<!>
val c2: Char = <!ILLEGAL_CONST_EXPRESSION!>' '<!>
val c3: Char = <!ILLEGAL_CONST_EXPRESSION!>'Ba'<!>
val c1: Char = <!TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL!>'B a'<!>
val c2: Char = <!TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL!>' '<!>
val c3: Char = <!TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL!>'Ba'<!>
}
// TESTCASE NUMBER: 4
fun case4() {
val cOutOfRaneMin = <!ILLEGAL_CONST_EXPRESSION!>'𐀀'<!> //u+10000
val cOutOfRaneMin = <!TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL!>'𐀀'<!> //u+10000
val cOutOfRangeAroundMax = <!ILLEGAL_CONST_EXPRESSION!>'󠇿󠇿󟿿'<!> //u+Dfffff
val cOutOfRangeAroundMax = <!TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL!>'󠇿󠇿󟿿'<!> //u+Dfffff
}
@@ -6,19 +6,19 @@
fun case1() {
//less then four hex digits
val c0 = <!ILLEGAL_CONST_EXPRESSION!>'\u'<!>
val c1 = <!ILLEGAL_CONST_EXPRESSION!>'\uf'<!>
val c2 = <!ILLEGAL_CONST_EXPRESSION!>'\u1f'<!>
val c3 = <!ILLEGAL_CONST_EXPRESSION!>'\u1wf'<!>
val c0 = <!ILLEGAL_ESCAPE!>'\u'<!>
val c1 = <!ILLEGAL_ESCAPE!>'\uf'<!>
val c2 = <!ILLEGAL_ESCAPE!>'\u1f'<!>
val c3 = <!ILLEGAL_ESCAPE!>'\u1wf'<!>
//more then four hex digits
val c4 = <!ILLEGAL_CONST_EXPRESSION!>'\u1wF2f'<!>
val c4 = <!ILLEGAL_ESCAPE!>'\u1wF2f'<!>
}
// TESTCASE NUMBER: 2
fun case2() {
//not hex
val c1 = <!ILLEGAL_CONST_EXPRESSION!>'\u000g'<!>
val c2 = <!ILLEGAL_CONST_EXPRESSION!>'\u000G'<!>
val c1 = <!ILLEGAL_ESCAPE!>'\u000g'<!>
val c2 = <!ILLEGAL_ESCAPE!>'\u000G'<!>
}