You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2019/12/13 22:42:00 UTC

[jira] [Updated] (GROOVY-7985) Wrong "incompatible generic type" error

     [ https://issues.apache.org/jira/browse/GROOVY-7985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eric Milles updated GROOVY-7985:
--------------------------------
    Fix Version/s: 2.4.18

> Wrong "incompatible generic type" error
> ---------------------------------------
>
>                 Key: GROOVY-7985
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7985
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static Type Checker
>    Affects Versions: 2.4.7
>            Reporter: Mauro Molinari
>            Assignee: Daniel Sun
>            Priority: Major
>             Fix For: 2.6.0-alpha-4, 3.0.0-alpha-3, 2.5.0-rc-3, 2.4.18
>
>
> Consider the following:
> {code}
> package test;
> import java.io.Serializable;
> public final class Pair<L, R> implements Serializable {
> 	public static <L, R> Pair<L, R> of(final L left, final R right) {
> 		return new Pair<>(left, right);
> 	}
> 	public final L left;
> 	public final R right;
> 	private Pair(final L left, final R right) {
> 		this.left = left;
> 		this.right = right;
> 	}
> }
> {code}
> And the following Groovy class:
> {code}
> package test2
> import test.Pair
> import java.util.Date;
> import groovy.transform.CompileStatic
> @CompileStatic
> class Test {
> 	Pair<Pair<Integer, Pair<String, Date>>, Pair<Integer, Pair<String, Date>>> doSmething() {
> 		def left = (Pair<Integer, Pair<String, Date>>) null
> 		def right = (Pair<Integer, Pair<String, Date>>) null
> 		return Pair.of(left, right)
> 	}
> }
> {code}
> Compilation fails with the following error message:
> {noformat}
> [Static type checking] - Incompatible generic argument types. Cannot assign test.Pair <test.Pair, test.Pair> to: test.Pair <Pair, Pair>
>  @ line 15, column 10.
>                 return Pair.of(left, right)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)