You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Roman Leuprecht (JIRA)" <ji...@apache.org> on 2016/07/05 16:24:10 UTC
[jira] [Created] (GROOVY-7880) Diamond Operator for own class
causes NullPointerException if Static Compilation is enabled
Roman Leuprecht created GROOVY-7880:
---------------------------------------
Summary: Diamond Operator for own class causes NullPointerException if Static Compilation is enabled
Key: GROOVY-7880
URL: https://issues.apache.org/jira/browse/GROOVY-7880
Project: Groovy
Issue Type: Bug
Components: Compiler, Static compilation, Static Type Checker
Affects Versions: 2.4.7, 2.4.3
Environment: Test Machine 1: ArchLinux x64,
openjdk version "1.8.0_92"
OpenJDK Runtime Environment (build 1.8.0_92-b14)
OpenJDK 64-Bit Server VM (build 25.92-b14, mixed mode)
Test Machine 2: MacOSX 10.11.3
Oracle Java Version: 1.8.0_05
Reporter: Roman Leuprecht
Priority: Minor
When the diamond operator is used to instantiate a generic and the generic is specialized on the class the method is in, static compilation fails with a Nullpointer Exception. Dynamic compilation works, also if replacing the diamond operator with the exact type or using "raw" typing.
The following code reproduces the bug on both machines(listed in Environment):
{code:java}
import groovy.transform.CompileStatic
@CompileStatic
class BugTest {
private class CompilerKiller<T> {
private T t
public CompilerKiller(T t){
this.t = t
}
}
public void "This causes a NPE"(){
CompilerKiller<BugTest> sample = new CompilerKiller<>(this)
}
public void "This does work"(){
CompilerKiller<BugTest> sample = new CompilerKiller<BugTest>(this)
}
public void "This works as well"(){
CompilerKiller<BugTest> sample = new CompilerKiller(this)
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)