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)