diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallKind.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallKind.kt index b44811646c2..c07841982e4 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallKind.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallKind.kt @@ -92,6 +92,8 @@ sealed class CallKind(vararg resolutionSequence: ResolutionStage) { CheckCallableReferenceExpectedType, CheckLowPriorityInOverloadResolution, CheckIncompatibleTypeVariableUpperBounds, + ProcessDynamicExtensionAnnotation, + LowerPriorityIfDynamic, ) object SyntheticIdForCallableReferencesResolution : CallKind( diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/dynamicTypes/dynamicExtensionCallableReference.kt b/compiler/testData/diagnostics/testsWithJsStdLib/dynamicTypes/dynamicExtensionCallableReference.kt new file mode 100644 index 00000000000..35037f563b3 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithJsStdLib/dynamicTypes/dynamicExtensionCallableReference.kt @@ -0,0 +1,25 @@ +// FIR_IDENTICAL +// DIAGNOSTICS: -UNUSED_PARAMETER + +fun jso(): T = + js("({})") + +fun jso( + block: T.() -> Unit, +): T = jso().apply(block) + +object FooBar { + fun buildNodes() = jso { + this["code_block"] = ParseRuleBuilder.create(getAttrs = ::readCodeBlockAttrs) + } + + private fun readCodeBlockAttrs() { + } +} + +object ParseRuleBuilder { + fun create( + getAttrs: Any? = null, + ) { + } +} \ No newline at end of file diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJsStdLibGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJsStdLibGenerated.java index 711e786807d..2c9349510f2 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJsStdLibGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJsStdLibGenerated.java @@ -229,6 +229,12 @@ public class DiagnosticsTestWithJsStdLibGenerated extends AbstractDiagnosticsTes runTest("compiler/testData/diagnostics/testsWithJsStdLib/dynamicTypes/dynamicExtension.kt"); } + @Test + @TestMetadata("dynamicExtensionCallableReference.kt") + public void testDynamicExtensionCallableReference() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJsStdLib/dynamicTypes/dynamicExtensionCallableReference.kt"); + } + @Test @TestMetadata("dynamicSafeCalls.kt") public void testDynamicSafeCalls() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsOldFrontendDiagnosticsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsOldFrontendDiagnosticsTestGenerated.java index 4096faf723c..051712daefa 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsOldFrontendDiagnosticsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsOldFrontendDiagnosticsTestGenerated.java @@ -230,6 +230,12 @@ public class FirPsiJsOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiJ runTest("compiler/testData/diagnostics/testsWithJsStdLib/dynamicTypes/dynamicExtension.kt"); } + @Test + @TestMetadata("dynamicExtensionCallableReference.kt") + public void testDynamicExtensionCallableReference() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJsStdLib/dynamicTypes/dynamicExtensionCallableReference.kt"); + } + @Test @TestMetadata("dynamicSafeCalls.kt") public void testDynamicSafeCalls() throws Exception {