mgroovy commented on GROOVY-8570:

@[~blackdrag]: When would that converter run ? And who would implement and 
maintain it right now ? What added benefit would it have over simply educating 
people to use idiomatic Groovy constructs (which is much simpler to implement 
and has no maintenance effort) ? Would it (optionally ?) also support idiomatic 
edge cases such as for-loops to each-functional-style-iteration (What if the 
construct has or might have different performance characteristics ?) ? What if 
the converter has a bug or a conversion does not work e.g. for indy-Groovy 
only, wouldn't the reputation of Groovy suffer needlessly (reputation of course 
is easily lost, hard to regain - see under "Groovy is slow", "Groovy is a 
script language", ...) ? Would it be better to base this e.g. on IntelliJ ? It 
feels like this would definitely merit its own Jira issue...

> Support Warnings in Groovy Compiler
> -----------------------------------
>                 Key: GROOVY-8570
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8570
>             Project: Groovy
>          Issue Type: New Feature
>          Components: Compiler
>    Affects Versions: 3.0.0-alpha-3
>            Reporter: mgroovy
>            Priority: Major
> * To warn Java developers using e.g. non-idiomatic Groovy constructs which 
> only exist to support copy-and-paste Java-to-Groovy code compatibility, The 
> Groovy compiler should support compiler warnings in addition to compiler 
> errors.
>  * Warnings should by default only be emitted in special circumstances such 
> as the one described above, and not spam developers with an endless stream 
> of, often subjectve, messages on "how to use Groovy correctly".
>  * Sample warnings:
> # WARNING: Using curly braces Java style array literals (\{...}) is not 
> idiomatic Groovy. To avoid confusion with Groovy closures, it is recommended 
> to use the performance-identical Groovy square bracket list literal syntax 
> ([...]) instead.
> # WARNING: The 'var' keyword is currently only an alias to 'def' (i.e. 
> Object) in Groovy. To get reassignment type safety use an explicit type 
> instead.

This message was sent by Atlassian JIRA

Reply via email to