diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/TypesUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/TypesUtil.java index b280f86159cf..281c919ff8f5 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/TypesUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/TypesUtil.java @@ -216,6 +216,8 @@ public class TypesUtil { public static boolean isAssignableByMethodCallConversion(PsiType lType, PsiType rType, PsiManager manager, GlobalSearchScope scope) { if (lType == null || rType == null) return false; + if (lType.equalsToText(JAVA_LANG_STRING)) return true; + if (isNumericType(lType) && isNumericType(rType)) { lType = unboxPrimitiveTypeWrapper(lType); if (lType.equalsToText(JAVA_MATH_BIG_DECIMAL)) lType = PsiType.DOUBLE; 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 971ba82df0e1..4bc7ae93ff5a 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java @@ -187,4 +187,6 @@ public class GroovyHighlightingTest extends LightCodeInsightFixtureTestCase { public void testFQNJavaClassesUsages() throws Exception { doTest(); } + + public void testGstringAssignableToString() throws Exception{doTest();} } \ No newline at end of file diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.java b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.java index 4756cfd7f138..d566a056d4ad 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.java @@ -393,7 +393,7 @@ public class ResolveMethodTest extends GroovyResolveTestCase { PsiReference ref = configureByFile("unboxBigDecimal/A.groovy"); PsiElement resolved = ref.resolve(); assertTrue(resolved instanceof PsiMethod); - assertEquals(((PsiMethod) resolved).getReturnType(), PsiType.DOUBLE); + assertEquals(PsiType.DOUBLE, ((PsiMethod) resolved).getReturnType()); } public void testGrvy1157() throws Exception { diff --git a/plugins/groovy/testdata/highlighting/GstringAssignableToString.groovy b/plugins/groovy/testdata/highlighting/GstringAssignableToString.groovy new file mode 100644 index 000000000000..d424fd89bab6 --- /dev/null +++ b/plugins/groovy/testdata/highlighting/GstringAssignableToString.groovy @@ -0,0 +1,7 @@ +def foo(Date d, int x) {} + +def foo(String s, double x) {} + +def bar = 10 + +foo "$bar", 2 \ No newline at end of file