diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt index a6b4ca5e990..3b4eec27877 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt @@ -89,6 +89,25 @@ abstract class AbstractDiagnosticCollector( functionCall.calleeReference.accept(visitor) } + override fun visitComponentCall(componentCall: FirComponentCall) { + componentCall.runComponents() + // same as FirFunctionCall.typeRef that + // you can see above + componentCall.annotations.forEach { it.accept(visitor) } + componentCall.typeArguments.forEach { it.accept(visitor) } + componentCall.argumentList.accept(visitor) + componentCall.calleeReference.accept(visitor) + componentCall.explicitReceiver.accept(visitor) + if (componentCall.dispatchReceiver !== componentCall.explicitReceiver) { + componentCall.dispatchReceiver.accept(visitor) + } + if (componentCall.extensionReceiver !== componentCall.explicitReceiver && + componentCall.extensionReceiver !== componentCall.dispatchReceiver + ) { + componentCall.extensionReceiver.accept(visitor) + } + } + private fun visitJump(loopJump: FirLoopJump) { loopJump.runComponents() loopJump.acceptChildren(this) diff --git a/compiler/testData/diagnostics/tests/dataClasses/errorTypesInDataClasses.fir.kt b/compiler/testData/diagnostics/tests/dataClasses/errorTypesInDataClasses.fir.kt deleted file mode 100644 index 8e62bac1471..00000000000 --- a/compiler/testData/diagnostics/tests/dataClasses/errorTypesInDataClasses.fir.kt +++ /dev/null @@ -1,16 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -data class A(val i: Int, val j: G) -data class B(val i: G, val j: G) - - -fun fa(a: A) { - val (i, j) = a - val i2 = a.component1() - val j2 = a.component2() -} - -fun fb(b: B) { - val (i, j) = b - val i2 = b.component1() - val j2 = b.component2() -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/dataClasses/errorTypesInDataClasses.kt b/compiler/testData/diagnostics/tests/dataClasses/errorTypesInDataClasses.kt index cb61d356996..82c4814326f 100644 --- a/compiler/testData/diagnostics/tests/dataClasses/errorTypesInDataClasses.kt +++ b/compiler/testData/diagnostics/tests/dataClasses/errorTypesInDataClasses.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_VARIABLE data class A(val i: Int, val j: G) data class B(val i: G, val j: G)