java.util.concurrent jtreg tests no longer compile after 8194892: add compiler support for local-variable syntax for lambda parameters

Vicente Romero vicente.romero at oracle.com
Wed Feb 21 13:30:00 UTC 2018


Hi Martin,

Right the offending changeset was delta applied. We are working on a fix 
for the bug,

Thanks,
Vicente

On 02/20/2018 03:32 PM, Martin Buchholz wrote:
> It looks like this changeset has broken jtreg tests,
> e.g. test/jdk/java/util/concurrent/tck/ConcurrentHashMap8Test.java
>
> changeset:   48920:916690b5edc9
> user:        vromero
> date:        2018-02-20 11:45 -0500
> 8194892: add compiler support for local-variable syntax for lambda 
> parameters
> Reviewed-by: mcimadamore
>
> the breakages seem bogus, or at least I don't know how to fix them.  
> It's as if javac no longer knows how to handle typed single-parameter 
> lambda argument lists.
>
> E.g.
>
> /home/martin/ws/jdk/test/jdk/java/util/concurrent/tck/ConcurrentHashMap8Test.java:643: 
> error: invalid lambda parameter declaration
>         m.forEachEntry(Long.MAX_VALUE, (Map.Entry<Long,Long> e) -> 
> adder.add(e.getKey().longValue() + e.getValue().longValue()));
>                                        ^
>   (cannot mix implicitly-typed and explicitly-typed parameters)
> /home/martin/ws/jdk/test/jdk/java/util/concurrent/tck/ConcurrentHashMap8Test.java:643: 
> error: not a statement
>         m.forEachEntry(Long.MAX_VALUE, (Map.Entry<Long,Long> e) -> 
> adder.add(e.getKey().longValue() + e.getValue().longValue()));
>                                           ^
> /home/martin/ws/jdk/test/jdk/java/util/concurrent/tck/ConcurrentHashMap8Test.java:643: 
> error: ';' expected
>         m.forEachEntry(Long.MAX_VALUE, (Map.Entry<Long,Long> e) -> 
> adder.add(e.getKey().longValue() + e.getValue().longValue()));
>         ^
> /home/martin/ws/jdk/test/jdk/java/util/concurrent/tck/ConcurrentHashMap8Test.java:683: 
> error: invalid lambda parameter declaration
>         m.forEachEntry(1L, (Map.Entry<Long,Long> e) -> 
> adder.add(e.getKey().longValue() + e.getValue().longValue()));
>                            ^
>   (cannot mix implicitly-typed and explicitly-typed parameters)
>
>
>



More information about the compiler-dev mailing list