[
https://issues.apache.org/jira/browse/GROOVY-5106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paul King closed GROOVY-5106.
-----------------------------
> 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.1#820001)