You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Jan Hackel (Jira)" <ji...@apache.org> on 2020/01/27 13:18:00 UTC
[jira] [Created] (GROOVY-9374) Type-inference fails for tap on
inner classes with type checking
Jan Hackel created GROOVY-9374:
----------------------------------
Summary: Type-inference fails for tap on inner classes with type checking
Key: GROOVY-9374
URL: https://issues.apache.org/jira/browse/GROOVY-9374
Project: Groovy
Issue Type: Bug
Affects Versions: 2.5.9
Environment: Groovy 2.5.9. on Zulu JDK 11.0.3; Linux
Reporter: Jan Hackel
The following code will not compile with Groovy 2.5.9. It produces an error "[Static type checking] - Cannot assign value of type java.lang.Object to variable of type java.time.LocalDate". Same thing happens for instance fields.
A workaround is to qualify the source field either by {{this}} or by class name.
{code:groovy}
import groovy.transform.CompileStatic
import java.time.LocalDate
@CompileStatic
class TapTypeChecking {
private static final LocalDate DATE = LocalDate.of(2020, 2, 1)
static Inner inner() {
return new Inner().tap {
someDate = DATE
}
}
static class Inner {
LocalDate someDate
}
}
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)