[FIR] Implement FLOAT_LITERAL_OUT_OF_RANGE diagnostics, fix tests
This commit is contained in:
committed by
TeamCityServer
parent
4cf30cd1fa
commit
964bba3530
+1
@@ -57,6 +57,7 @@ enum class PositioningStrategy(private val strategy: String? = null) {
|
||||
SUPERTYPES_LIST,
|
||||
RETURN_WITH_LABEL,
|
||||
INT_LITERAL_OUT_OF_RANGE,
|
||||
FLOAT_LITERAL_OUT_OF_RANGE,
|
||||
LONG_LITERAL_SUFFIX,
|
||||
|
||||
;
|
||||
|
||||
+1
@@ -62,6 +62,7 @@ object DIAGNOSTICS_LIST : DiagnosticList() {
|
||||
val TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL by error<FirSourceElement, PsiElement>()
|
||||
val ILLEGAL_ESCAPE by error<FirSourceElement, PsiElement>()
|
||||
val INT_LITERAL_OUT_OF_RANGE by error<FirSourceElement, PsiElement>()
|
||||
val FLOAT_LITERAL_OUT_OF_RANGE by error<FirSourceElement, PsiElement>()
|
||||
val WRONG_LONG_SUFFIX by error<FirSourceElement, KtElement>(PositioningStrategy.LONG_LITERAL_SUFFIX)
|
||||
}
|
||||
|
||||
|
||||
@@ -87,6 +87,7 @@ object FirErrors {
|
||||
val TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL by error0<FirSourceElement, PsiElement>()
|
||||
val ILLEGAL_ESCAPE by error0<FirSourceElement, PsiElement>()
|
||||
val INT_LITERAL_OUT_OF_RANGE by error0<FirSourceElement, PsiElement>()
|
||||
val FLOAT_LITERAL_OUT_OF_RANGE by error0<FirSourceElement, PsiElement>()
|
||||
val WRONG_LONG_SUFFIX by error0<FirSourceElement, KtElement>(SourceElementPositioningStrategies.LONG_LITERAL_SUFFIX)
|
||||
|
||||
// Unresolved
|
||||
|
||||
+1
@@ -180,6 +180,7 @@ private fun ConeSimpleDiagnostic.getFactory(): FirDiagnosticFactory0<FirSourceEl
|
||||
DiagnosticKind.IllegalProjectionUsage -> FirErrors.ILLEGAL_PROJECTION_USAGE
|
||||
DiagnosticKind.MissingStdlibClass -> FirErrors.MISSING_STDLIB_CLASS
|
||||
DiagnosticKind.IntLiteralOutOfRange -> FirErrors.INT_LITERAL_OUT_OF_RANGE
|
||||
DiagnosticKind.FloatLiteralOutOfRange -> FirErrors.FLOAT_LITERAL_OUT_OF_RANGE
|
||||
DiagnosticKind.WrongLongSuffix -> FirErrors.WRONG_LONG_SUFFIX
|
||||
DiagnosticKind.Other -> FirErrors.OTHER_ERROR
|
||||
DiagnosticKind.IncorrectCharacterLiteral -> FirErrors.INCORRECT_CHARACTER_LITERAL
|
||||
|
||||
+2
-2
@@ -345,14 +345,14 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
sourceElement,
|
||||
ConstantValueKind.Float,
|
||||
convertedText,
|
||||
ConeSimpleDiagnostic("Incorrect float: $text", DiagnosticKind.IllegalConstExpression)
|
||||
ConeSimpleDiagnostic("Incorrect float: $text", DiagnosticKind.FloatLiteralOutOfRange)
|
||||
)
|
||||
} else {
|
||||
buildConstOrErrorExpression(
|
||||
sourceElement,
|
||||
ConstantValueKind.Double,
|
||||
convertedText as? Double,
|
||||
ConeSimpleDiagnostic("Incorrect double: $text", DiagnosticKind.IllegalConstExpression)
|
||||
ConeSimpleDiagnostic("Incorrect double: $text", DiagnosticKind.FloatLiteralOutOfRange)
|
||||
)
|
||||
}
|
||||
CHARACTER_CONSTANT -> {
|
||||
|
||||
@@ -37,6 +37,7 @@ enum class DiagnosticKind {
|
||||
IllegalEscape,
|
||||
|
||||
IntLiteralOutOfRange,
|
||||
FloatLiteralOutOfRange,
|
||||
WrongLongSuffix,
|
||||
|
||||
Other
|
||||
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
// TESTCASE NUMBER: 1
|
||||
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>0.0E<!>
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>00.0e<!>
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
val value_3 = <!ILLEGAL_CONST_EXPRESSION!>000.00e-<!>
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
val value_4 = <!ILLEGAL_CONST_EXPRESSION!>0000.000E+<!>
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
val value_5 = <!ILLEGAL_CONST_EXPRESSION!>1.0e<!>
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
val value_6 = <!ILLEGAL_CONST_EXPRESSION!>22.00E+<!>
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
val value_7 = <!ILLEGAL_CONST_EXPRESSION!>333.000e<!>
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
val value_8 = <!ILLEGAL_CONST_EXPRESSION!>4444.0000E<!>
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
val value_9 = <!ILLEGAL_CONST_EXPRESSION!>55555.0e+<!>
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
val value_10 = <!ILLEGAL_CONST_EXPRESSION!>666666.00E-<!>
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
val value_11 = <!ILLEGAL_CONST_EXPRESSION!>7777777.000e<!>
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
val value_12 = <!ILLEGAL_CONST_EXPRESSION!>88888888.0000e<!>
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
val value_13 = <!ILLEGAL_CONST_EXPRESSION!>999999999.0E-<!>
|
||||
|
||||
// TESTCASE NUMBER: 14
|
||||
val value_14 = <!ILLEGAL_CONST_EXPRESSION!>7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+<!>
|
||||
|
||||
// TESTCASE NUMBER: 15
|
||||
val value_15 = <!ILLEGAL_CONST_EXPRESSION!>0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e<!>
|
||||
|
||||
// TESTCASE NUMBER: 16
|
||||
val value_16 = <!ILLEGAL_CONST_EXPRESSION!>0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-<!>
|
||||
|
||||
// TESTCASE NUMBER: 17
|
||||
val value_17 = <!ILLEGAL_CONST_EXPRESSION!>0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+<!>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
// TESTCASE NUMBER: 1
|
||||
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>0.0EF<!>
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>00.0ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
val value_3 = <!ILLEGAL_CONST_EXPRESSION!>000.00e-f<!>
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
val value_4 = <!ILLEGAL_CONST_EXPRESSION!>0000.000E+F<!>
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
val value_5 = <!ILLEGAL_CONST_EXPRESSION!>1.0eF<!>
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
val value_6 = <!ILLEGAL_CONST_EXPRESSION!>22.00E+f<!>
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
val value_7 = <!ILLEGAL_CONST_EXPRESSION!>333.000ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
val value_8 = <!ILLEGAL_CONST_EXPRESSION!>4444.0000Ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
val value_9 = <!ILLEGAL_CONST_EXPRESSION!>55555.0e+F<!>
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
val value_10 = <!ILLEGAL_CONST_EXPRESSION!>666666.00E-F<!>
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
val value_11 = <!ILLEGAL_CONST_EXPRESSION!>7777777.000eF<!>
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
val value_12 = <!ILLEGAL_CONST_EXPRESSION!>88888888.0000ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
val value_13 = <!ILLEGAL_CONST_EXPRESSION!>999999999.0E-F<!>
|
||||
|
||||
// TESTCASE NUMBER: 14
|
||||
val value_14 = <!ILLEGAL_CONST_EXPRESSION!>7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+f<!>
|
||||
|
||||
// TESTCASE NUMBER: 15
|
||||
val value_15 = <!ILLEGAL_CONST_EXPRESSION!>0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eF<!>
|
||||
|
||||
// TESTCASE NUMBER: 16
|
||||
val value_16 = <!ILLEGAL_CONST_EXPRESSION!>0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-f<!>
|
||||
|
||||
// TESTCASE NUMBER: 17
|
||||
val value_17 = <!ILLEGAL_CONST_EXPRESSION!>0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+F<!>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
// TESTCASE NUMBER: 1
|
||||
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>.0E<!>
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>.0e<!>
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
val value_3 = <!ILLEGAL_CONST_EXPRESSION!>.00e-<!>
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
val value_4 = <!ILLEGAL_CONST_EXPRESSION!>.000E+<!>
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
val value_5 = <!ILLEGAL_CONST_EXPRESSION!>.0e<!>
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
val value_6 = <!ILLEGAL_CONST_EXPRESSION!>.00E+<!>
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
val value_7 = <!ILLEGAL_CONST_EXPRESSION!>.000e<!>
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
val value_8 = <!ILLEGAL_CONST_EXPRESSION!>.0000E<!>
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
val value_9 = <!ILLEGAL_CONST_EXPRESSION!>.0e+<!>
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
val value_10 = <!ILLEGAL_CONST_EXPRESSION!>.00E-<!>
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
val value_11 = <!ILLEGAL_CONST_EXPRESSION!>.000e<!>
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
val value_12 = <!ILLEGAL_CONST_EXPRESSION!>.0000e<!>
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
val value_13 = <!ILLEGAL_CONST_EXPRESSION!>.0E-<!>
|
||||
|
||||
// TESTCASE NUMBER: 14
|
||||
val value_14 = <!ILLEGAL_CONST_EXPRESSION!>.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+<!>
|
||||
|
||||
// TESTCASE NUMBER: 15
|
||||
val value_15 = <!ILLEGAL_CONST_EXPRESSION!>.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e<!>
|
||||
|
||||
// TESTCASE NUMBER: 16
|
||||
val value_16 = <!ILLEGAL_CONST_EXPRESSION!>.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-<!>
|
||||
|
||||
// TESTCASE NUMBER: 17
|
||||
val value_17 = <!ILLEGAL_CONST_EXPRESSION!>.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+<!>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
// TESTCASE NUMBER: 1
|
||||
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>.0EF<!>
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>.0ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
val value_3 = <!ILLEGAL_CONST_EXPRESSION!>.00e-f<!>
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
val value_4 = <!ILLEGAL_CONST_EXPRESSION!>.000E+F<!>
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
val value_5 = <!ILLEGAL_CONST_EXPRESSION!>.0eF<!>
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
val value_6 = <!ILLEGAL_CONST_EXPRESSION!>.00E+f<!>
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
val value_7 = <!ILLEGAL_CONST_EXPRESSION!>.000ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
val value_8 = <!ILLEGAL_CONST_EXPRESSION!>.0000Ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
val value_9 = <!ILLEGAL_CONST_EXPRESSION!>.0e+F<!>
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
val value_10 = <!ILLEGAL_CONST_EXPRESSION!>.00E-F<!>
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
val value_11 = <!ILLEGAL_CONST_EXPRESSION!>.000eF<!>
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
val value_12 = <!ILLEGAL_CONST_EXPRESSION!>.0000ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
val value_13 = <!ILLEGAL_CONST_EXPRESSION!>.0E-F<!>
|
||||
|
||||
// TESTCASE NUMBER: 14
|
||||
val value_14 = <!ILLEGAL_CONST_EXPRESSION!>.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+f<!>
|
||||
|
||||
// TESTCASE NUMBER: 15
|
||||
val value_15 = <!ILLEGAL_CONST_EXPRESSION!>.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eF<!>
|
||||
|
||||
// TESTCASE NUMBER: 16
|
||||
val value_16 = <!ILLEGAL_CONST_EXPRESSION!>.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-f<!>
|
||||
|
||||
// TESTCASE NUMBER: 17
|
||||
val value_17 = <!ILLEGAL_CONST_EXPRESSION!>.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+F<!>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
// TESTCASE NUMBER: 1
|
||||
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>0e<!>
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>00e-<!>
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
val value_3 = <!ILLEGAL_CONST_EXPRESSION!>000E+<!>
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
val value_4 = <!ILLEGAL_CONST_EXPRESSION!>0000e+<!>
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
val value_5 = <!ILLEGAL_CONST_EXPRESSION!>00000000000000000000000000000000000000E<!>
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
val value_6 = <!ILLEGAL_CONST_EXPRESSION!>34567E+<!>
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
val value_7 = <!ILLEGAL_CONST_EXPRESSION!>456e-<!>
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
val value_8 = <!ILLEGAL_CONST_EXPRESSION!>55555e+f<!>
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
val value_9 = <!ILLEGAL_CONST_EXPRESSION!>666666E-F<!>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
|
||||
+23
-14
@@ -1,44 +1,53 @@
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-100
|
||||
* MAIN LINK: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Real literals without digits after an exponent mark and with undescores in the different pisitions.
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>.0_0e-<!>
|
||||
val value_1 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.0_0e-<!>
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>0_0___0E+<!>
|
||||
val value_2 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0_0___0E+<!>
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
val value_3 = <!ILLEGAL_CONST_EXPRESSION!>.0_0e-F<!>
|
||||
val value_3 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.0_0e-F<!>
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
val value_4 = <!ILLEGAL_CONST_EXPRESSION!>0__________________________0E+<!>
|
||||
val value_4 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0__________________________0E+<!>
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
val value_5 = <!ILLEGAL_CONST_EXPRESSION!>0_00e<!>
|
||||
val value_5 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0_00e<!>
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
val value_6 = <!ILLEGAL_CONST_EXPRESSION!>.0_0__0___0E<!>
|
||||
val value_6 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.0_0__0___0E<!>
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
val value_7 = <!ILLEGAL_CONST_EXPRESSION!>0_1e+f<!>
|
||||
val value_7 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0_1e+f<!>
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
val value_8 = <!ILLEGAL_CONST_EXPRESSION!>.0_0E-<!>
|
||||
val value_8 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.0_0E-<!>
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
val value_9 = <!ILLEGAL_CONST_EXPRESSION!>0___0__0e<!>
|
||||
val value_9 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0___0__0e<!>
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
val value_10 = <!ILLEGAL_CONST_EXPRESSION!>0_00_0ef<!>
|
||||
val value_10 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0_00_0ef<!>
|
||||
|
||||
// TESTCASE NUMBER: 11
|
||||
val value_11 = <!ILLEGAL_CONST_EXPRESSION!>.0_5E-F<!>
|
||||
val value_11 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.0_5E-F<!>
|
||||
|
||||
// TESTCASE NUMBER: 12
|
||||
val value_12 = <!ILLEGAL_CONST_EXPRESSION!>.8____8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888_____8888888888888888888e+f<!>
|
||||
val value_12 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.8____8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888_____8888888888888888888e+f<!>
|
||||
|
||||
// TESTCASE NUMBER: 13
|
||||
val value_13 = <!ILLEGAL_CONST_EXPRESSION!>0_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0eF<!>
|
||||
val value_13 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0eF<!>
|
||||
|
||||
// TESTCASE NUMBER: 14
|
||||
val value_14 = <!ILLEGAL_UNDERSCORE!>0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_e-f<!>
|
||||
|
||||
// TESTCASE NUMBER: 15
|
||||
val value_15 = <!ILLEGAL_CONST_EXPRESSION!>.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+<!>
|
||||
val value_15 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+<!>
|
||||
|
||||
+6
@@ -155,6 +155,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.FLOAT_LITERAL_OUT_OF_RANGE) { firDiagnostic ->
|
||||
FloatLiteralOutOfRangeImpl(
|
||||
firDiagnostic as FirPsiDiagnostic<*>,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.WRONG_LONG_SUFFIX) { firDiagnostic ->
|
||||
WrongLongSuffixImpl(
|
||||
firDiagnostic as FirPsiDiagnostic<*>,
|
||||
|
||||
+4
@@ -128,6 +128,10 @@ sealed class KtFirDiagnostic<PSI: PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = IntLiteralOutOfRange::class
|
||||
}
|
||||
|
||||
abstract class FloatLiteralOutOfRange : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = FloatLiteralOutOfRange::class
|
||||
}
|
||||
|
||||
abstract class WrongLongSuffix : KtFirDiagnostic<KtElement>() {
|
||||
override val diagnosticClass get() = WrongLongSuffix::class
|
||||
}
|
||||
|
||||
+7
@@ -180,6 +180,13 @@ internal class IntLiteralOutOfRangeImpl(
|
||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class FloatLiteralOutOfRangeImpl(
|
||||
firDiagnostic: FirPsiDiagnostic<*>,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.FloatLiteralOutOfRange(), KtAbstractFirDiagnostic<PsiElement> {
|
||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class WrongLongSuffixImpl(
|
||||
firDiagnostic: FirPsiDiagnostic<*>,
|
||||
override val token: ValidityToken,
|
||||
|
||||
Reference in New Issue
Block a user