From cbaf6caa8d22e2983010dba3d61dfb8743c2e81d Mon Sep 17 00:00:00 2001 From: Maxim Medvedev Date: Mon, 16 Nov 2009 20:33:59 +0300 Subject: [PATCH] IDEADEV-41362 --- .../lang/psi/impl/statements/expressions/TypesUtil.java | 2 ++ .../plugins/groovy/lang/GroovyHighlightingTest.java | 2 ++ .../plugins/groovy/lang/resolve/ResolveMethodTest.java | 2 +- .../testdata/highlighting/GstringAssignableToString.groovy | 7 +++++++ 4 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 plugins/groovy/testdata/highlighting/GstringAssignableToString.groovy 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