FIR IDE: Change PSI element type for NO_COMPANION_OBJECT and
EXPRESSION_EXPECTED_PACKAGE_FOUND from KtSimpleNameExpression to KtExpression (source can be KtDotQualifiedExpression).
This commit is contained in:
committed by
teamcityserver
parent
91a852d3fd
commit
97c10b0b84
+2
-2
@@ -848,10 +848,10 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") {
|
|||||||
val TYPE_PARAMETER_ON_LHS_OF_DOT by error<KtSimpleNameExpression> {
|
val TYPE_PARAMETER_ON_LHS_OF_DOT by error<KtSimpleNameExpression> {
|
||||||
parameter<FirTypeParameterSymbol>("typeParameter")
|
parameter<FirTypeParameterSymbol>("typeParameter")
|
||||||
}
|
}
|
||||||
val NO_COMPANION_OBJECT by error<KtSimpleNameExpression>(PositioningStrategy.SELECTOR_BY_QUALIFIED) {
|
val NO_COMPANION_OBJECT by error<KtExpression>(PositioningStrategy.SELECTOR_BY_QUALIFIED) {
|
||||||
parameter<FirRegularClassSymbol>("klass")
|
parameter<FirRegularClassSymbol>("klass")
|
||||||
}
|
}
|
||||||
val EXPRESSION_EXPECTED_PACKAGE_FOUND by error<KtSimpleNameExpression>(PositioningStrategy.SELECTOR_BY_QUALIFIED)
|
val EXPRESSION_EXPECTED_PACKAGE_FOUND by error<KtExpression>(PositioningStrategy.SELECTOR_BY_QUALIFIED)
|
||||||
}
|
}
|
||||||
|
|
||||||
val FUNCTION_CONTRACTS by object : DiagnosticGroup("Function contracts") {
|
val FUNCTION_CONTRACTS by object : DiagnosticGroup("Function contracts") {
|
||||||
|
|||||||
+2
-2
@@ -475,8 +475,8 @@ object FirErrors {
|
|||||||
// Context tracking
|
// Context tracking
|
||||||
val TYPE_PARAMETER_IS_NOT_AN_EXPRESSION by error1<KtSimpleNameExpression, FirTypeParameterSymbol>()
|
val TYPE_PARAMETER_IS_NOT_AN_EXPRESSION by error1<KtSimpleNameExpression, FirTypeParameterSymbol>()
|
||||||
val TYPE_PARAMETER_ON_LHS_OF_DOT by error1<KtSimpleNameExpression, FirTypeParameterSymbol>()
|
val TYPE_PARAMETER_ON_LHS_OF_DOT by error1<KtSimpleNameExpression, FirTypeParameterSymbol>()
|
||||||
val NO_COMPANION_OBJECT by error1<KtSimpleNameExpression, FirRegularClassSymbol>(SourceElementPositioningStrategies.SELECTOR_BY_QUALIFIED)
|
val NO_COMPANION_OBJECT by error1<KtExpression, FirRegularClassSymbol>(SourceElementPositioningStrategies.SELECTOR_BY_QUALIFIED)
|
||||||
val EXPRESSION_EXPECTED_PACKAGE_FOUND by error0<KtSimpleNameExpression>(SourceElementPositioningStrategies.SELECTOR_BY_QUALIFIED)
|
val EXPRESSION_EXPECTED_PACKAGE_FOUND by error0<KtExpression>(SourceElementPositioningStrategies.SELECTOR_BY_QUALIFIED)
|
||||||
|
|
||||||
// Function contracts
|
// Function contracts
|
||||||
val ERROR_IN_CONTRACT_DESCRIPTION by error1<KtElement, String>(SourceElementPositioningStrategies.SELECTOR_BY_QUALIFIED)
|
val ERROR_IN_CONTRACT_DESCRIPTION by error1<KtElement, String>(SourceElementPositioningStrategies.SELECTOR_BY_QUALIFIED)
|
||||||
|
|||||||
+5
@@ -231,6 +231,11 @@ public class FirKotlinHighlightingPassTestGenerated extends AbstractFirKotlinHig
|
|||||||
runTest("idea/testData/checker/OverridesAndGenerics.kt");
|
runTest("idea/testData/checker/OverridesAndGenerics.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("PackageInExpressionPosition.kt")
|
||||||
|
public void testPackageInExpressionPosition() throws Exception {
|
||||||
|
runTest("idea/testData/checker/PackageInExpressionPosition.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("PackageQualified.kt")
|
@TestMetadata("PackageQualified.kt")
|
||||||
public void testPackageQualified() throws Exception {
|
public void testPackageQualified() throws Exception {
|
||||||
runTest("idea/testData/checker/PackageQualified.kt");
|
runTest("idea/testData/checker/PackageQualified.kt");
|
||||||
|
|||||||
+2
-2
@@ -1647,12 +1647,12 @@ sealed class KtFirDiagnostic<PSI: PsiElement> : KtDiagnosticWithPsi<PSI> {
|
|||||||
abstract val typeParameter: KtTypeParameterSymbol
|
abstract val typeParameter: KtTypeParameterSymbol
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class NoCompanionObject : KtFirDiagnostic<KtSimpleNameExpression>() {
|
abstract class NoCompanionObject : KtFirDiagnostic<KtExpression>() {
|
||||||
override val diagnosticClass get() = NoCompanionObject::class
|
override val diagnosticClass get() = NoCompanionObject::class
|
||||||
abstract val klass: KtClassLikeSymbol
|
abstract val klass: KtClassLikeSymbol
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class ExpressionExpectedPackageFound : KtFirDiagnostic<KtSimpleNameExpression>() {
|
abstract class ExpressionExpectedPackageFound : KtFirDiagnostic<KtExpression>() {
|
||||||
override val diagnosticClass get() = ExpressionExpectedPackageFound::class
|
override val diagnosticClass get() = ExpressionExpectedPackageFound::class
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2669,14 +2669,14 @@ internal class NoCompanionObjectImpl(
|
|||||||
override val klass: KtClassLikeSymbol,
|
override val klass: KtClassLikeSymbol,
|
||||||
firDiagnostic: FirPsiDiagnostic<*>,
|
firDiagnostic: FirPsiDiagnostic<*>,
|
||||||
override val token: ValidityToken,
|
override val token: ValidityToken,
|
||||||
) : KtFirDiagnostic.NoCompanionObject(), KtAbstractFirDiagnostic<KtSimpleNameExpression> {
|
) : KtFirDiagnostic.NoCompanionObject(), KtAbstractFirDiagnostic<KtExpression> {
|
||||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class ExpressionExpectedPackageFoundImpl(
|
internal class ExpressionExpectedPackageFoundImpl(
|
||||||
firDiagnostic: FirPsiDiagnostic<*>,
|
firDiagnostic: FirPsiDiagnostic<*>,
|
||||||
override val token: ValidityToken,
|
override val token: ValidityToken,
|
||||||
) : KtFirDiagnostic.ExpressionExpectedPackageFound(), KtAbstractFirDiagnostic<KtSimpleNameExpression> {
|
) : KtFirDiagnostic.ExpressionExpectedPackageFound(), KtAbstractFirDiagnostic<KtExpression> {
|
||||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import java.nio.file.Files
|
|||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
|
||||||
object IgnoreTests {
|
object IgnoreTests {
|
||||||
private const val INSERT_DIRECTIVE_AUTOMATICALLY = true // TODO use environment variable instead
|
private const val INSERT_DIRECTIVE_AUTOMATICALLY = false // TODO use environment variable instead
|
||||||
private const val ALWAYS_CONSIDER_TEST_AS_PASSING = false // TODO use environment variable instead
|
private const val ALWAYS_CONSIDER_TEST_AS_PASSING = false // TODO use environment variable instead
|
||||||
|
|
||||||
fun runTestIfEnabledByFileDirective(
|
fun runTestIfEnabledByFileDirective(
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class X {}
|
||||||
|
|
||||||
|
val s = <error descr="[EXPRESSION_EXPECTED_PACKAGE_FOUND] Expression expected, but a package name found">java</error>
|
||||||
|
val ss = <error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error>
|
||||||
|
val sss = <error descr="[NO_COMPANION_OBJECT] Classifier 'foo/X' does not have a companion object, and thus must be initialized here">X</error>
|
||||||
|
val x = "${<error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error>}"
|
||||||
|
val xs = java.<error descr="[EXPRESSION_EXPECTED_PACKAGE_FOUND] Expression expected, but a package name found">lang</error>
|
||||||
|
val xss = java.lang.<error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error>
|
||||||
|
val xsss = foo.<error descr="[NO_COMPANION_OBJECT] Classifier 'foo/X' does not have a companion object, and thus must be initialized here">X</error>
|
||||||
|
val xssss = <error descr="[EXPRESSION_EXPECTED_PACKAGE_FOUND] Expression expected, but a package name found">foo</error>
|
||||||
|
val f = { <error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error> }
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
<error descr="[EXPRESSION_EXPECTED_PACKAGE_FOUND] Expression expected, but a package name found">java</error> = null
|
||||||
|
<error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error> = null
|
||||||
|
<error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error>!!
|
||||||
|
java.lang.<error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error> = null
|
||||||
|
java.lang.<error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error>!!
|
||||||
|
<error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error> is Int
|
||||||
|
<error descr="[INVISIBLE_REFERENCE] Symbol java/lang/System.System is invisible">System</error>()
|
||||||
|
(<error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error>)
|
||||||
|
foo@ <error descr="[NO_COMPANION_OBJECT] Classifier 'java/lang/System' does not have a companion object, and thus must be initialized here">System</error>
|
||||||
|
null <error descr="[UNRESOLVED_REFERENCE] Unresolved reference: contains">in</error> System
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class X {}
|
||||||
|
|
||||||
|
val s = <error descr="[EXPRESSION_EXPECTED_PACKAGE_FOUND] Expression expected, but a package name found">java</error>
|
||||||
|
val ss = <error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error>
|
||||||
|
val sss = <error descr="[NO_COMPANION_OBJECT] Classifier 'X' does not have a companion object, and thus must be initialized here">X</error>
|
||||||
|
val x = "${<error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error>}"
|
||||||
|
val xs = java.<error descr="[EXPRESSION_EXPECTED_PACKAGE_FOUND] Expression expected, but a package name found">lang</error>
|
||||||
|
val xss = java.lang.<error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error>
|
||||||
|
val xsss = foo.<error descr="[NO_COMPANION_OBJECT] Classifier 'X' does not have a companion object, and thus must be initialized here">X</error>
|
||||||
|
val xssss = <error descr="[EXPRESSION_EXPECTED_PACKAGE_FOUND] Expression expected, but a package name found">foo</error>
|
||||||
|
val f = { <error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error> }
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
<error descr="[EXPRESSION_EXPECTED_PACKAGE_FOUND] Expression expected, but a package name found">java</error> = null
|
||||||
|
<error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error> = null
|
||||||
|
<error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error>!!
|
||||||
|
java.lang.<error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error> = null
|
||||||
|
java.lang.<error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error>!!
|
||||||
|
<error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error> is Int
|
||||||
|
<error descr="[INVISIBLE_MEMBER] Cannot access '<init>': it is private in 'System'">System</error>()
|
||||||
|
(<error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error>)
|
||||||
|
<warning descr="[REDUNDANT_LABEL_WARNING] Label is redundant, because it can not be referenced in either ''break'', ''continue'', or ''return'' expression">foo@</warning> <error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error>
|
||||||
|
null in <error descr="[NO_COMPANION_OBJECT] Classifier 'System' does not have a companion object, and thus must be initialized here">System</error>
|
||||||
|
}
|
||||||
+5
@@ -231,6 +231,11 @@ public class KotlinHighlightingPassTestGenerated extends AbstractKotlinHighlight
|
|||||||
runTest("idea/testData/checker/OverridesAndGenerics.kt");
|
runTest("idea/testData/checker/OverridesAndGenerics.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("PackageInExpressionPosition.kt")
|
||||||
|
public void testPackageInExpressionPosition() throws Exception {
|
||||||
|
runTest("idea/testData/checker/PackageInExpressionPosition.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("PackageQualified.kt")
|
@TestMetadata("PackageQualified.kt")
|
||||||
public void testPackageQualified() throws Exception {
|
public void testPackageQualified() throws Exception {
|
||||||
runTest("idea/testData/checker/PackageQualified.kt");
|
runTest("idea/testData/checker/PackageQualified.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user