Skip to content

Commit

Permalink
Merge branch 'GROOVY_2_0_X' of github.com:groovy/groovy-core into GRO…
Browse files Browse the repository at this point in the history
…OVY_2_0_X
  • Loading branch information
paulk-asert committed Sep 20, 2012
2 parents 91b9b2a + e7e789f commit 76d6a47
Showing 1 changed file with 18 additions and 3 deletions.
Expand Up @@ -4,6 +4,8 @@ package org.codehaus.groovy.tools.stubgenerator
* GROOVY-5630: * GROOVY-5630:
* Java stub generator generates wrong cast for return value of generic method * Java stub generator generates wrong cast for return value of generic method
* *
* (also covers GROOVY-5439)
*
* @author Guillaume Laforge * @author Guillaume Laforge
*/ */
class WrongCastForGenericReturnValueOfMethodStubsTest extends StringSourcesStubTestCase { class WrongCastForGenericReturnValueOfMethodStubsTest extends StringSourcesStubTestCase {
Expand All @@ -14,18 +16,31 @@ class WrongCastForGenericReturnValueOfMethodStubsTest extends StringSourcesStubT
class HelperUtil { class HelperUtil {
final Map<String, String> test = new HashMap<String, String>() final Map<String, String> test = new HashMap<String, String>()
static <T extends Task> T createTask(Class<T> type) { } static <T extends Task> T createTask(Class<T> type) { }
public <T extends List> T foo() { null }
} }
''', ''',
'Task.java': ''' 'Task.java': '''
public class Task {} public class Task {}
''',
'Schedule.groovy': '''
class Schedule<T extends ScheduleItem> extends HashSet<T> {
T getCurrentItem() { }
}
''',
'ScheduleItem.java': '''
public class ScheduleItem {}
''' '''
] ]
} }


void verifyStubs() { void verifyStubs() {
def stubSource = stubJavaSourceFor('HelperUtil') def stubSourceForHelper = stubJavaSourceFor('HelperUtil')
def stubSourceForSchedule = stubJavaSourceFor('Schedule')

assert stubSourceForHelper.contains("public static <T extends Task> T createTask(java.lang.Class<T> type) { return (T)null;}")
assert stubSourceForHelper.contains("public final java.util.Map<java.lang.String, java.lang.String> getTest() { return (java.util.Map<java.lang.String, java.lang.String>)null;}")
assert stubSourceForHelper.contains("public <T extends java.util.List> T foo() { return (T)null;}")


assert stubSource.contains("public static <T extends Task> T createTask(java.lang.Class<T> type) { return (T)null;}") assert stubSourceForSchedule.contains("public T getCurrentItem() { return (T)null;}")
assert stubSource.contains("public final java.util.Map<java.lang.String, java.lang.String> getTest() { return (java.util.Map<java.lang.String, java.lang.String>)null;}")
} }
} }

0 comments on commit 76d6a47

Please sign in to comment.