[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);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithEnumFromDuplicatedLibrary.kt")
|
||||
public void testAnnotationWithEnumFromDuplicatedLibrary() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("declarationErrors.kt")
|
||||
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);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithEnumFromDuplicatedLibrary.kt")
|
||||
public void testAnnotationWithEnumFromDuplicatedLibrary() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("declarationErrors.kt")
|
||||
public void testDeclarationErrors() throws Exception {
|
||||
|
||||
+11
-3
@@ -9,7 +9,8 @@ import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtDiagnosticCheckerFilter
|
||||
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.PsiDiagnosticUtils.offsetToLineAndColumn
|
||||
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.psiUtil.startOffset
|
||||
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.assertions
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
abstract class AbstractCollectDiagnosticsTest : AbstractAnalysisApiSingleFileTest() {
|
||||
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
|
||||
abstract class AbstractCollectDiagnosticsTest : AbstractAnalysisApiBasedTest() {
|
||||
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 {
|
||||
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);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationWithEnumFromDuplicatedLibrary.kt")
|
||||
public void testAnnotationWithEnumFromDuplicatedLibrary() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("declarationErrors.kt")
|
||||
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