Groovy 2.5 SNAPSHOT and final local variables

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Groovy 2.5 SNAPSHOT and final local variables

Alain Stalder
Not sure if this is the right/best place to report this, but I got this
with the current head of the master branch of
https://github.com/apache/groovy.git (ec3179a455):

--
final File file = new File('whatever')
final List<String> lines
try {
   lines = file.readLines()
} catch (IOException e) {
   return null
}
--

=>

1 compilation error:

The variable [lines] may be uninitialized
. At [2:20]  at line: 2, column: 20

--
final File file = new File('whatever')
final List<String> lines
try {
   lines = file.readLines()
} catch (IOException e) {
   lines = null
}
--

=>

1 compilation error:

The variable [lines] is declared final but is reassigned
. At [6:3]  at line: 6, column: 3


Reply | Threaded
Open this post in threaded view
|

Re: Groovy 2.5 SNAPSHOT and final local variables

paulk_asert
I noticed a few similar problems recently (GROOVY-8093, GROOVY-8094)
but yours looks slightly different again. Probably worth creating an
issue.

On Sun, Mar 5, 2017 at 11:16 PM, Alain Stalder <[hidden email]> wrote:

> Not sure if this is the right/best place to report this, but I got this with
> the current head of the master branch of
> https://github.com/apache/groovy.git (ec3179a455):
>
> --
> final File file = new File('whatever')
> final List<String> lines
> try {
>   lines = file.readLines()
> } catch (IOException e) {
>   return null
> }
> --
>
> =>
>
> 1 compilation error:
>
> The variable [lines] may be uninitialized
> . At [2:20]  at line: 2, column: 20
>
> --
> final File file = new File('whatever')
> final List<String> lines
> try {
>   lines = file.readLines()
> } catch (IOException e) {
>   lines = null
> }
> --
>
> =>
>
> 1 compilation error:
>
> The variable [lines] is declared final but is reassigned
> . At [6:3]  at line: 6, column: 3
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Groovy 2.5 SNAPSHOT and final local variables

Cédric Champeau
This is an interesting topic. I had started implementing this, but never managed to finish, because of higher priorities (migration to ASF, Codehaus shutdown). It means the implementation of effectively final variables inference is not ready, and buggy. I doubt I will have time to fix, which probably means disabling in 2.5, unless someone else takes it over.

2017-03-05 21:45 GMT+01:00 Paul King <[hidden email]>:
I noticed a few similar problems recently (GROOVY-8093, GROOVY-8094)
but yours looks slightly different again. Probably worth creating an
issue.

On Sun, Mar 5, 2017 at 11:16 PM, Alain Stalder <[hidden email]> wrote:
> Not sure if this is the right/best place to report this, but I got this with
> the current head of the master branch of
> https://github.com/apache/groovy.git (ec3179a455):
>
> --
> final File file = new File('whatever')
> final List<String> lines
> try {
>   lines = file.readLines()
> } catch (IOException e) {
>   return null
> }
> --
>
> =>
>
> 1 compilation error:
>
> The variable [lines] may be uninitialized
> . At [2:20]  at line: 2, column: 20
>
> --
> final File file = new File('whatever')
> final List<String> lines
> try {
>   lines = file.readLines()
> } catch (IOException e) {
>   lines = null
> }
> --
>
> =>
>
> 1 compilation error:
>
> The variable [lines] is declared final but is reassigned
> . At [6:3]  at line: 6, column: 3
>
>