Parse longs with 'L' suffix. Report error if 'l' used.

This commit is contained in:
Natalia Ukhorskaya
2013-12-04 14:30:32 +04:00
parent 53d17bc4ce
commit e5a3518248
17 changed files with 605 additions and 368 deletions
@@ -0,0 +1,10 @@
fun box(): String {
if (1L != 1.toLong()) return "fail 1"
if (0x1L != 0x1.toLong()) return "fail 2"
if (0X1L != 0X1.toLong()) return "fail 3"
if (0b1L != 0b1.toLong()) return "fail 4"
if (0B1L != 0B1.toLong()) return "fail 5"
return "OK"
}
@@ -0,0 +1,10 @@
val a1: Int = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1L<!>
val a2: Int = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>0x1L<!>
val a3: Int = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>0X1L<!>
val a4: Int = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>0b1L<!>
val a5: Int = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>0B1L<!>
val a6: Long = 1L
val a7: Long = 0x1L
val a8: Long = 0X1L
val a9: Long = 0b1L
val a10: Long = 0B1L
@@ -0,0 +1,10 @@
val a1: Int = 1<!WRONG_LONG_SUFFIX!>l<!>
val a2: Int = 0x1<!WRONG_LONG_SUFFIX!>l<!>
val a3: Int = 0X1<!WRONG_LONG_SUFFIX!>l<!>
val a4: Int = 0b1<!WRONG_LONG_SUFFIX!>l<!>
val a5: Int = 0B1<!WRONG_LONG_SUFFIX!>l<!>
val a6: Long = 1<!WRONG_LONG_SUFFIX!>l<!>
val a7: Long = 0x1<!WRONG_LONG_SUFFIX!>l<!>
val a8: Long = 0X1<!WRONG_LONG_SUFFIX!>l<!>
val a9: Long = 0b1<!WRONG_LONG_SUFFIX!>l<!>
val a10: Long = 0B1<!WRONG_LONG_SUFFIX!>l<!>
@@ -0,0 +1,31 @@
package test
// val prop1: 1.toLong()
val prop1 = 1L
// val prop2: 1.toLong()
val prop2 = 0x1L
// val prop3: 1.toLong()
val prop3 = 0X1L
// val prop4: 1.toLong()
val prop4 = 0b1L
// val prop5: 1.toLong()
val prop5 = 0B1L
// val prop6: 1.toLong()
val prop6 = 1l
// val prop7: 1.toLong()
val prop7 = 0x1l
// val prop8: 1.toLong()
val prop8 = 0X1l
// val prop9: 1.toLong()
val prop9 = 0b1l
// val prop10: 1.toLong()
val prop10 = 0B1l
+17
View File
@@ -0,0 +1,17 @@
val array = array<Any>(
1,
0x1,
0X1,
0b1,
0B1,
1L,
0x1L,
0X1L,
0b1L,
0B1L,
1l,
0x1l,
0X1l,
0b1l,
0B1l,
)
+102
View File
@@ -0,0 +1,102 @@
JetFile: IntegerLiteral.kt
NAMESPACE_HEADER
<empty list>
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('array')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('array')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Any')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0x1')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0X1')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0b1')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0B1')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1L')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0x1L')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0X1L')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0b1L')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0B1L')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1l')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0x1l')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0X1l')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0b1l')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_ARGUMENT
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0B1l')
PsiElement(COMMA)(',')
PsiErrorElement:Expecting an argument
<empty list>
PsiWhiteSpace('\n')
PsiElement(RPAR)(')')