[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,
|
SUPERTYPES_LIST,
|
||||||
RETURN_WITH_LABEL,
|
RETURN_WITH_LABEL,
|
||||||
INT_LITERAL_OUT_OF_RANGE,
|
INT_LITERAL_OUT_OF_RANGE,
|
||||||
|
FLOAT_LITERAL_OUT_OF_RANGE,
|
||||||
LONG_LITERAL_SUFFIX,
|
LONG_LITERAL_SUFFIX,
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|||||||
+1
@@ -62,6 +62,7 @@ object DIAGNOSTICS_LIST : DiagnosticList() {
|
|||||||
val TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL by error<FirSourceElement, PsiElement>()
|
val TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL by error<FirSourceElement, PsiElement>()
|
||||||
val ILLEGAL_ESCAPE by error<FirSourceElement, PsiElement>()
|
val ILLEGAL_ESCAPE by error<FirSourceElement, PsiElement>()
|
||||||
val INT_LITERAL_OUT_OF_RANGE 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)
|
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 TOO_MANY_CHARACTERS_IN_CHARACTER_LITERAL by error0<FirSourceElement, PsiElement>()
|
||||||
val ILLEGAL_ESCAPE by error0<FirSourceElement, PsiElement>()
|
val ILLEGAL_ESCAPE by error0<FirSourceElement, PsiElement>()
|
||||||
val INT_LITERAL_OUT_OF_RANGE 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)
|
val WRONG_LONG_SUFFIX by error0<FirSourceElement, KtElement>(SourceElementPositioningStrategies.LONG_LITERAL_SUFFIX)
|
||||||
|
|
||||||
// Unresolved
|
// Unresolved
|
||||||
|
|||||||
+1
@@ -180,6 +180,7 @@ private fun ConeSimpleDiagnostic.getFactory(): FirDiagnosticFactory0<FirSourceEl
|
|||||||
DiagnosticKind.IllegalProjectionUsage -> FirErrors.ILLEGAL_PROJECTION_USAGE
|
DiagnosticKind.IllegalProjectionUsage -> FirErrors.ILLEGAL_PROJECTION_USAGE
|
||||||
DiagnosticKind.MissingStdlibClass -> FirErrors.MISSING_STDLIB_CLASS
|
DiagnosticKind.MissingStdlibClass -> FirErrors.MISSING_STDLIB_CLASS
|
||||||
DiagnosticKind.IntLiteralOutOfRange -> FirErrors.INT_LITERAL_OUT_OF_RANGE
|
DiagnosticKind.IntLiteralOutOfRange -> FirErrors.INT_LITERAL_OUT_OF_RANGE
|
||||||
|
DiagnosticKind.FloatLiteralOutOfRange -> FirErrors.FLOAT_LITERAL_OUT_OF_RANGE
|
||||||
DiagnosticKind.WrongLongSuffix -> FirErrors.WRONG_LONG_SUFFIX
|
DiagnosticKind.WrongLongSuffix -> FirErrors.WRONG_LONG_SUFFIX
|
||||||
DiagnosticKind.Other -> FirErrors.OTHER_ERROR
|
DiagnosticKind.Other -> FirErrors.OTHER_ERROR
|
||||||
DiagnosticKind.IncorrectCharacterLiteral -> FirErrors.INCORRECT_CHARACTER_LITERAL
|
DiagnosticKind.IncorrectCharacterLiteral -> FirErrors.INCORRECT_CHARACTER_LITERAL
|
||||||
|
|||||||
+2
-2
@@ -345,14 +345,14 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
|||||||
sourceElement,
|
sourceElement,
|
||||||
ConstantValueKind.Float,
|
ConstantValueKind.Float,
|
||||||
convertedText,
|
convertedText,
|
||||||
ConeSimpleDiagnostic("Incorrect float: $text", DiagnosticKind.IllegalConstExpression)
|
ConeSimpleDiagnostic("Incorrect float: $text", DiagnosticKind.FloatLiteralOutOfRange)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
buildConstOrErrorExpression(
|
buildConstOrErrorExpression(
|
||||||
sourceElement,
|
sourceElement,
|
||||||
ConstantValueKind.Double,
|
ConstantValueKind.Double,
|
||||||
convertedText as? Double,
|
convertedText as? Double,
|
||||||
ConeSimpleDiagnostic("Incorrect double: $text", DiagnosticKind.IllegalConstExpression)
|
ConeSimpleDiagnostic("Incorrect double: $text", DiagnosticKind.FloatLiteralOutOfRange)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
CHARACTER_CONSTANT -> {
|
CHARACTER_CONSTANT -> {
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ enum class DiagnosticKind {
|
|||||||
IllegalEscape,
|
IllegalEscape,
|
||||||
|
|
||||||
IntLiteralOutOfRange,
|
IntLiteralOutOfRange,
|
||||||
|
FloatLiteralOutOfRange,
|
||||||
WrongLongSuffix,
|
WrongLongSuffix,
|
||||||
|
|
||||||
Other
|
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)
|
* 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)
|
* 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)
|
* 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)
|
* 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)
|
* 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
|
// TESTCASE NUMBER: 1
|
||||||
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>.0_0e-<!>
|
val value_1 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.0_0e-<!>
|
||||||
|
|
||||||
// TESTCASE NUMBER: 2
|
// 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
|
// 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
|
// TESTCASE NUMBER: 4
|
||||||
val value_4 = <!ILLEGAL_CONST_EXPRESSION!>0__________________________0E+<!>
|
val value_4 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0__________________________0E+<!>
|
||||||
|
|
||||||
// TESTCASE NUMBER: 5
|
// TESTCASE NUMBER: 5
|
||||||
val value_5 = <!ILLEGAL_CONST_EXPRESSION!>0_00e<!>
|
val value_5 = <!FLOAT_LITERAL_OUT_OF_RANGE!>0_00e<!>
|
||||||
|
|
||||||
// TESTCASE NUMBER: 6
|
// 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
|
// 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
|
// TESTCASE NUMBER: 8
|
||||||
val value_8 = <!ILLEGAL_CONST_EXPRESSION!>.0_0E-<!>
|
val value_8 = <!FLOAT_LITERAL_OUT_OF_RANGE!>.0_0E-<!>
|
||||||
|
|
||||||
// TESTCASE NUMBER: 9
|
// 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
|
// 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
|
// 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
|
// 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
|
// 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
|
// 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<!>
|
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
|
// 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,
|
token,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
add(FirErrors.FLOAT_LITERAL_OUT_OF_RANGE) { firDiagnostic ->
|
||||||
|
FloatLiteralOutOfRangeImpl(
|
||||||
|
firDiagnostic as FirPsiDiagnostic<*>,
|
||||||
|
token,
|
||||||
|
)
|
||||||
|
}
|
||||||
add(FirErrors.WRONG_LONG_SUFFIX) { firDiagnostic ->
|
add(FirErrors.WRONG_LONG_SUFFIX) { firDiagnostic ->
|
||||||
WrongLongSuffixImpl(
|
WrongLongSuffixImpl(
|
||||||
firDiagnostic as FirPsiDiagnostic<*>,
|
firDiagnostic as FirPsiDiagnostic<*>,
|
||||||
|
|||||||
+4
@@ -128,6 +128,10 @@ sealed class KtFirDiagnostic<PSI: PsiElement> : KtDiagnosticWithPsi<PSI> {
|
|||||||
override val diagnosticClass get() = IntLiteralOutOfRange::class
|
override val diagnosticClass get() = IntLiteralOutOfRange::class
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abstract class FloatLiteralOutOfRange : KtFirDiagnostic<PsiElement>() {
|
||||||
|
override val diagnosticClass get() = FloatLiteralOutOfRange::class
|
||||||
|
}
|
||||||
|
|
||||||
abstract class WrongLongSuffix : KtFirDiagnostic<KtElement>() {
|
abstract class WrongLongSuffix : KtFirDiagnostic<KtElement>() {
|
||||||
override val diagnosticClass get() = WrongLongSuffix::class
|
override val diagnosticClass get() = WrongLongSuffix::class
|
||||||
}
|
}
|
||||||
|
|||||||
+7
@@ -180,6 +180,13 @@ internal class IntLiteralOutOfRangeImpl(
|
|||||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
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(
|
internal class WrongLongSuffixImpl(
|
||||||
firDiagnostic: FirPsiDiagnostic<*>,
|
firDiagnostic: FirPsiDiagnostic<*>,
|
||||||
override val token: ValidityToken,
|
override val token: ValidityToken,
|
||||||
|
|||||||
Reference in New Issue
Block a user