diff --git a/plugins/IntelliLang/IntelliLang-tests/test/org/intellij/plugins/intelliLang/JavaLanguageInjectionSupportTest.kt b/plugins/IntelliLang/IntelliLang-tests/test/org/intellij/plugins/intelliLang/JavaLanguageInjectionSupportTest.kt index 93c7bb79c533..9463f75e1fd8 100644 --- a/plugins/IntelliLang/IntelliLang-tests/test/org/intellij/plugins/intelliLang/JavaLanguageInjectionSupportTest.kt +++ b/plugins/IntelliLang/IntelliLang-tests/test/org/intellij/plugins/intelliLang/JavaLanguageInjectionSupportTest.kt @@ -256,16 +256,19 @@ class JavaLanguageInjectionSupportTest : AbstractLanguageInjectionTestCase() { class Hello { void test(@Subst("ClassName") String name, String message) { - @Language("JAVA") - String s = STR.""${'"'} + String s = javaProcessor().""${'"'} class \{name} { void main() { System.out.println("\{message}"); } }""${'"'}; } - } - """.trimIndent()) + + @Language("JAVA") + private static StringTemplate.Processor javaProcessor() { + return STR; + } + }""".trimIndent()) myFixture.checkHighlighting() injectionTestFixture.assertInjectedContent(""" class ClassName { diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/util/AnnotationUtilEx.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/util/AnnotationUtilEx.java index f2b715578e81..12828a69f401 100644 --- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/util/AnnotationUtilEx.java +++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/util/AnnotationUtilEx.java @@ -156,8 +156,12 @@ public final class AnnotationUtilEx { PsiElement target = ref.resolve(); if (target instanceof PsiVariable var) { visitor.visitVariable(var); - } else if (target instanceof PsiMethod method) { - visitor.visitMethodReturnStatement(parent, method); + } + } + else if (templ.getProcessor() instanceof PsiCallExpression call && call != element) { + PsiMethod method = call.resolveMethod(); + if (method != null) { + visitor.visitMethodReturnStatement(call, method); } } }