From 86b3e65d19c732608e2382eb54420e9bf1d5c55b Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Thu, 25 May 2023 12:14:45 +0200 Subject: [PATCH] K2 Scripting: enable script processing in diagnostics collector and add scripts to containing decls in checker context te be able to check for containing script in checkers --- .../collectors/AbstractDiagnosticCollectorVisitor.kt | 9 +++++++++ .../tests/script/topLevelPropertiesWithGetSet.fir.kts | 8 ++++---- .../diagnostics/tests/script/typealiasInScript.fir.kts | 9 +++++++++ .../diagnostics/tests/script/typealiasInScript.kts | 1 - 4 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/script/typealiasInScript.fir.kts diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt index e7bc9a9e754..8435d1b45c4 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt @@ -94,6 +94,15 @@ abstract class AbstractDiagnosticCollectorVisitor( } } + override fun visitScript(script: FirScript, data: Nothing?) { + withAnnotationContainer(script) { + checkElement(script) + withDeclaration(script) { + visitNestedElements(script) + } + } + } + override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Nothing?) { withAnnotationContainer(simpleFunction) { visitWithDeclarationAndReceiver(simpleFunction, simpleFunction.name, simpleFunction.receiverParameter) diff --git a/compiler/testData/diagnostics/tests/script/topLevelPropertiesWithGetSet.fir.kts b/compiler/testData/diagnostics/tests/script/topLevelPropertiesWithGetSet.fir.kts index 8e843c0640a..ef352763440 100644 --- a/compiler/testData/diagnostics/tests/script/topLevelPropertiesWithGetSet.fir.kts +++ b/compiler/testData/diagnostics/tests/script/topLevelPropertiesWithGetSet.fir.kts @@ -16,10 +16,10 @@ get() = 42 val testValLineBreakNoType get() = 42 -val testValLineBreakSemi: Int; +val testValLineBreakSemi: Int; get() = 42 -val testValLineBreakSemiNoType; +val testValLineBreakSemiNoType; get() = 42 var testVarLineBreak: Int @@ -30,10 +30,10 @@ var String.testExtVarLineBreak: Int get() = 42 set(value) {} -var testVarLineBreakSemi: Int; +var testVarLineBreakSemi: Int; get() = 42 set(value) {} -var String.testExtVarLineBreakSemi: Int; +var String.testExtVarLineBreakSemi: Int; get() = 42 set(value) {} diff --git a/compiler/testData/diagnostics/tests/script/typealiasInScript.fir.kts b/compiler/testData/diagnostics/tests/script/typealiasInScript.fir.kts new file mode 100644 index 00000000000..06618e9ccf6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/script/typealiasInScript.fir.kts @@ -0,0 +1,9 @@ +typealias TopLevelInScript = String + +class C { + typealias NestedInClass = String +} + +fun foo() { + typealias Local = String +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/script/typealiasInScript.kts b/compiler/testData/diagnostics/tests/script/typealiasInScript.kts index 63320f9d1f3..9607616d33b 100644 --- a/compiler/testData/diagnostics/tests/script/typealiasInScript.kts +++ b/compiler/testData/diagnostics/tests/script/typealiasInScript.kts @@ -1,4 +1,3 @@ -// FIR_IDENTICAL typealias TopLevelInScript = String class C {