From dab20960936fe45eafeb7a151a784807c74c4a7c Mon Sep 17 00:00:00 2001 From: Maxim Medvedev Date: Tue, 17 Nov 2009 16:54:52 +0300 Subject: [PATCH] IDEADEV-41362 --- .../jetbrains/plugins/groovy/annotator/GroovyAnnotator.java | 4 ++-- .../jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java | 1 + .../GstringAssignableToStringInClosureParameter.groovy | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 plugins/groovy/testdata/highlighting/GstringAssignableToStringInClosureParameter.groovy diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java index 508db407449b..6200be42e54d 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java @@ -95,7 +95,7 @@ public class GroovyAnnotator implements Annotator { return node != null && PsiTreeUtil.getParentOfType(element, GrDocComment.class) != null || element instanceof GrDocComment; } - public void annotate(PsiElement element, AnnotationHolder holder) { + public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) { if (element instanceof GrCodeReferenceElement) { checkReferenceElement(holder, (GrCodeReferenceElement)element); } @@ -1124,7 +1124,7 @@ public class GroovyAnnotator implements Annotator { for (int i = 0; i < argumentTypes.length; i++) { final PsiType paramType = TypesUtil.boxPrimitiveType(paramTypes[i], manager, resolveScope); final PsiType argType = argumentTypes[i]; - if (!paramType.isAssignableFrom(argType)) return false; + if (!TypesUtil.isAssignableByMethodCallConversion(paramType, argType, manager, resolveScope)) return false; } return true; } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java index 4bc7ae93ff5a..1b38ce9aa3e5 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java @@ -189,4 +189,5 @@ public class GroovyHighlightingTest extends LightCodeInsightFixtureTestCase { } public void testGstringAssignableToString() throws Exception{doTest();} + public void testGstringAssignableToStringInClosureParameter() throws Exception{doTest();} } \ No newline at end of file diff --git a/plugins/groovy/testdata/highlighting/GstringAssignableToStringInClosureParameter.groovy b/plugins/groovy/testdata/highlighting/GstringAssignableToStringInClosureParameter.groovy new file mode 100644 index 000000000000..cfebad34ff69 --- /dev/null +++ b/plugins/groovy/testdata/highlighting/GstringAssignableToStringInClosureParameter.groovy @@ -0,0 +1,3 @@ +def foo={String s->print s} + +foo "${2}" \ No newline at end of file