From 931519ed0fad5d2de05b53f2f71ab10b8f090537 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 30 Mar 2011 19:39:51 +0200 Subject: [PATCH] EA-26355: don't produce wildcards in gdsl --- .../groovy/resources/standardDsls/defaultMethods.gdsl | 10 ++++++++-- .../plugins/groovy/lang/GroovyHighlightingTest.java | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/resources/standardDsls/defaultMethods.gdsl b/plugins/groovy/resources/standardDsls/defaultMethods.gdsl index a2378adb9d27..13a26592035b 100644 --- a/plugins/groovy/resources/standardDsls/defaultMethods.gdsl +++ b/plugins/groovy/resources/standardDsls/defaultMethods.gdsl @@ -25,6 +25,7 @@ import static standardDsls.Constants.STRING interface Constants { String NUMBER = "java.lang.Number" String STRING = "java.lang.String" + String WILDCARD_PREFIX = "? extends " } def extractTypeParameter(def typeText) { @@ -32,8 +33,13 @@ def extractTypeParameter(def typeText) { final int end = typeText.lastIndexOf('>') if (start < 0) return null - if (end < 0) return typeText.substring(start + 1) - return typeText.substring(start + 1, end); + + String componentType = end < 0 ? typeText.substring(start + 1) : typeText.substring(start + 1, end) + if (componentType.startsWith(Constants.WILDCARD_PREFIX)) { + componentType = componentType.substring(Constants.WILDCARD_PREFIX.size()) + } + + return componentType; } def constructElementTypeArg(def psiType) { 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 a72b9869e997..7d9990e25f5c 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/GroovyHighlightingTest.java @@ -346,6 +346,10 @@ public class GroovyHighlightingTest extends LightCodeInsightFixtureTestCase { doTest(new GroovyResultOfAssignmentUsedInspection()); } + public void testGdslWildcardTypes() { + myFixture.configureByText("a.groovy", "List l = []; l.get(1)"); + myFixture.checkHighlighting(true, false, false); + } public void testThisTypeInStaticContext() { doTest(new GroovyAssignabilityCheckInspection());