[ https://issues.apache.org/jira/browse/GROOVY-5106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-5106: -------------------------------- Language: groovy > Same interface can be implemented with two different generic types > ------------------------------------------------------------------ > > Key: GROOVY-5106 > URL: https://issues.apache.org/jira/browse/GROOVY-5106 > Project: Groovy > Issue Type: Bug > Components: Compiler > Affects Versions: 2.4.0-beta-3 > Reporter: Cédric Champeau > Assignee: Eric Milles > Priority: Major > Fix For: 4.0.0 > > > Given the following code : > {code} > interface One<T> { > void echo(T obj); > } > interface Two extends One<String> {} > class OneImpl implements Two,One<Integer> { > public void echo(String obj) { println obj } > } > def o = new OneImpl() > {code} > The "One" interface is implemented twice with two different generic types, > which should not be allowed. Here's another example, more complex : > {code} > interface Transcoder<T, U> { > T transcode(U obj); > } > interface TranscoderToString<V> extends Transcoder<String, V>{ > } > abstract class AbstractToStringTranscoder<V> implements TranscoderToString<V> > { > public String transcode(final V obj) { > return obj.toString(); > } > } > class IntegerToStringTranscoder extends AbstractToStringTranscoder<Integer> > implements TranscoderToString<Boolean> { > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)