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

Eric Milles commented on GROOVY-8169:
-------------------------------------

For one, code editors get the wrong picture of the source.  In the Eclipse IDE, 
this extra bit prevents code hover and select on the type in the for statement.

> StaticCompilationVisitor.visitForLoop sets Parameter origin type, which 
> prevents access to original source type and location
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-8169
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8169
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static compilation
>            Reporter: Eric Milles
>
> {{StaticCompilationVisitor.visitForLoop}} has call to 
> {{forLoop.getVariable().setOriginType(componentType)}}.  I think this call is 
> unnecessary as the inferred type is set on the previous line.  By replacing 
> the origin type, it is no longer possible to determine the uninferred type of 
> the parameter or the source location of the ClassNode.  Additionally, I think 
> the semantics of origin type is not being preserved by overwriting the value.
> Example:
> {code}
> @CompileStatic
> def m() {
>   List<String> strings = ...
>   for (String s in strings) {
>   }
> }
> {code}
> In this example, the second occurrence of String is replaced in the AST by 
> the first and so the source position of the ClassNode after "for" and before 
> "s" is lost.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to