groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dinko Srkoč <dinko.sr...@gmail.com>
Subject Re: A @CompileStatic bug, or is it just me: [].withDefault { 0 }
Date Tue, 29 Sep 2015 08:17:38 GMT
On 29 September 2015 at 10:12, Cédric Champeau
<cedric.champeau@gmail.com> wrote:
> That's because it's withDefault { 1 } ;)

Argh! Still morning for me. :-(

>
> 2015-09-29 10:05 GMT+02:00 Dinko Srkoč <dinko.srkoc@gmail.com>:
>>
>> On 29 September 2015 at 09:58, Cédric Champeau
>> <cedric.champeau@gmail.com> wrote:
>> > This looks like a bug. Would be interesting to look at the bytecode to
>> > check
>> > what method is called for x[n].
>>
>> Curiously, I tried to do just that in the Groovy AST Browser and, for
>> the following piece of code:
>>
>>   @groovy.transform.CompileStatic
>>   def foo() {
>>       [].withDefault(1)
>>   }
>>
>> got this:
>>
>> Unable to produce AST for this phase due to earlier compilation error:
>> startup failed:
>> script1443513793544.groovy: 3: [Static type checking] - Cannot find
>> matching method java.util.List#withDefault(int). Please check if the
>> declared type is right and if the method exists.
>>  @ line 3, column 5.
>>        [].withDefault(1)
>>        ^
>>
>> That's Groovy 2.4.4
>>
>> Cheers,
>> Dinko
>>
>> >
>> > 2015-09-29 9:54 GMT+02:00 Søren Berg Glasius <soeren@glasius.dk>:
>> >>
>> >> Hi Fellows,
>> >>
>> >> I stumbled upon this today.
>> >>
>> >> This code runs:
>> >>
>> >> class Test {
>> >>     private List<Integer> x = [].withDefault { 0 }
>> >>     Integer getValue(int n) {
>> >>         return x[n]
>> >>     }
>> >> }
>> >> assert new Test().getValue(5) == 0
>> >>
>> >> where as when I compile static:
>> >>
>> >> @CompileStatic
>> >> class Test {
>> >>     private List<Integer> x = [].withDefault { 0 }
>> >>     Integer getValue(int n) {
>> >>         return x[n]
>> >>     }
>> >> }
>> >> assert new Test().getValue(5) == 0
>> >>
>> >> I get an assertion failed, because new Test().getValue(5) == null
>> >>
>> >> Is this expected behavior or a bug?
>> >>
>> >>
>> >> Best regards / Med venlig hilsen,
>> >> Søren Berg Glasius
>> >>
>> >> Hedevej 1, Gl. Rye, 8680 Ry, Denmark
>> >> Mobile: +45 40 44 91 88, Skype: sbglasius
>> >> --- Press ESC once to quit - twice to save the changes.
>> >
>> >
>
>

Mime
View raw message