[Analysis API] add diagnostic test for compiler annotation with argument from another module
^KT-63547
This commit is contained in:
committed by
Space Team
parent
acf3f2a3a1
commit
4bd73e4ccd
+6
@@ -46,6 +46,12 @@ public class Fe10IdeNormalAnalysisSourceModuleCollectDiagnosticsTestGenerated ex
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("annotationWithEnumFromDuplicatedLibrary.kt")
|
||||||
|
public void testAnnotationWithEnumFromDuplicatedLibrary() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("declarationErrors.kt")
|
@TestMetadata("declarationErrors.kt")
|
||||||
public void testDeclarationErrors() throws Exception {
|
public void testDeclarationErrors() throws Exception {
|
||||||
|
|||||||
+6
@@ -46,6 +46,12 @@ public class FirIdeNormalAnalysisSourceModuleCollectDiagnosticsTestGenerated ext
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("annotationWithEnumFromDuplicatedLibrary.kt")
|
||||||
|
public void testAnnotationWithEnumFromDuplicatedLibrary() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("declarationErrors.kt")
|
@TestMetadata("declarationErrors.kt")
|
||||||
public void testDeclarationErrors() throws Exception {
|
public void testDeclarationErrors() throws Exception {
|
||||||
|
|||||||
+11
-3
@@ -9,7 +9,8 @@ import com.intellij.openapi.util.TextRange
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.analysis.api.components.KtDiagnosticCheckerFilter
|
import org.jetbrains.kotlin.analysis.api.components.KtDiagnosticCheckerFilter
|
||||||
import org.jetbrains.kotlin.analysis.api.diagnostics.KtDiagnosticWithPsi
|
import org.jetbrains.kotlin.analysis.api.diagnostics.KtDiagnosticWithPsi
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest
|
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest
|
||||||
|
import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticUtils.getLineAndColumnRangeInPsiFile
|
import org.jetbrains.kotlin.diagnostics.DiagnosticUtils.getLineAndColumnRangeInPsiFile
|
||||||
import org.jetbrains.kotlin.diagnostics.PsiDiagnosticUtils.offsetToLineAndColumn
|
import org.jetbrains.kotlin.diagnostics.PsiDiagnosticUtils.offsetToLineAndColumn
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
@@ -17,12 +18,19 @@ import org.jetbrains.kotlin.psi.KtFile
|
|||||||
import org.jetbrains.kotlin.psi.KtTreeVisitorVoid
|
import org.jetbrains.kotlin.psi.KtTreeVisitorVoid
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||||
import org.jetbrains.kotlin.test.model.TestModule
|
import org.jetbrains.kotlin.test.model.TestModule
|
||||||
|
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
||||||
import org.jetbrains.kotlin.test.services.TestServices
|
import org.jetbrains.kotlin.test.services.TestServices
|
||||||
import org.jetbrains.kotlin.test.services.assertions
|
import org.jetbrains.kotlin.test.services.assertions
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
abstract class AbstractCollectDiagnosticsTest : AbstractAnalysisApiSingleFileTest() {
|
abstract class AbstractCollectDiagnosticsTest : AbstractAnalysisApiBasedTest() {
|
||||||
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
|
override fun doTestByModuleStructure(moduleStructure: TestModuleStructure, testServices: TestServices) {
|
||||||
|
val lastModule = moduleStructure.modules.last()
|
||||||
|
val firstKtFileFile = testServices.ktModuleProvider.getModuleFiles(lastModule).firstNotNullOf { it as? KtFile }
|
||||||
|
doTestByFileStructure(firstKtFileFile, lastModule, testServices)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
|
||||||
fun TextRange.asLineColumnRange(): String {
|
fun TextRange.asLineColumnRange(): String {
|
||||||
return getLineAndColumnRangeInPsiFile(ktFile, this).toString()
|
return getLineAndColumnRangeInPsiFile(ktFile, this).toString()
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -46,6 +46,12 @@ public class FirStandaloneNormalAnalysisSourceModuleCollectDiagnosticsTestGenera
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("annotationWithEnumFromDuplicatedLibrary.kt")
|
||||||
|
public void testAnnotationWithEnumFromDuplicatedLibrary() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("declarationErrors.kt")
|
@TestMetadata("declarationErrors.kt")
|
||||||
public void testDeclarationErrors() throws Exception {
|
public void testDeclarationErrors() throws Exception {
|
||||||
|
|||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
Diagnostics from elements:
|
||||||
|
for PSI element of type KtConstructorCalleeExpression at (34,2-12)
|
||||||
|
NO_VALUE_FOR_PARAMETER text ranges: [(115,125)]
|
||||||
|
PSI: KtConstructorCalleeExpression at (34,2-12)
|
||||||
|
for PSI element of type KtNameReferenceExpression at (32,8-10)
|
||||||
|
UNRESOLVED_REFERENCE text ranges: [(94,96)]
|
||||||
|
PSI: KtNameReferenceExpression at (32,8-10)
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
// ALLOW_KOTLIN_PACKAGE
|
||||||
|
// DISABLE_SEALED_INHERITOR_CALCULATOR
|
||||||
|
// MODULE: lib1
|
||||||
|
// FILE: anno.kt
|
||||||
|
package kotlin.annotation
|
||||||
|
|
||||||
|
public enum class AnnotationTarget {
|
||||||
|
CLASS;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MODULE: dep(lib1)
|
||||||
|
// FILE: annotation.kt
|
||||||
|
package my.pack
|
||||||
|
|
||||||
|
import kotlin.annotation.AnnotationTarget
|
||||||
|
|
||||||
|
@Target(AnnotationTarget.CLASS)
|
||||||
|
annotation class Deprecated
|
||||||
|
|
||||||
|
// MODULE: lib2
|
||||||
|
// FILE: anno.kt
|
||||||
|
package kotlin.annotation
|
||||||
|
|
||||||
|
public enum class AnnotationTarget {
|
||||||
|
CLASS;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MODULE: main(lib2, dep)
|
||||||
|
// FILE: usage.kt
|
||||||
|
package usage
|
||||||
|
|
||||||
|
import my.pack.Deprecated
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
class Usage
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
Diagnostics from elements:
|
||||||
|
for PSI element of type KtAnnotationEntry at (34,1-12)
|
||||||
|
WRONG_ANNOTATION_TARGET text ranges: [(114,125)]
|
||||||
|
PSI: KtAnnotationEntry at (34,1-12)
|
||||||
Reference in New Issue
Block a user