[ 
https://issues.apache.org/jira/browse/GROOVY-9374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17029046#comment-17029046
 ] 

Eric Milles commented on GROOVY-9374:
-------------------------------------

In Groovy 2.5.8, the CompileStatic did not propagate to the AIC.  This STC 
error would have been seen if method inner() was annotated with 
{{@CompileStatic}} or {{@TypeChecked}}.  You can add {{@CompileDynamic}} to 
inner to revert to old behavior.

> 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
>            Priority: Major
>
> 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)

Reply via email to