Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.0-beta-1
-
Fix Version/s: 2.0-beta-2
-
Component/s: Static Type Checker
-
Labels:None
-
Number of attachments :
Description
STC Error when calling a method with an argument of null when the parameter is an array
Null parameter with array argument
import groovy.transform.* @TypeChecked class Foo { def say() { methodWithArrayParam(null) // STC Error } def methodWithArrayParam(String[] s) { } }
Other cases tested too:
Simple method call with null argument
class Foo {
def say() {
methodWithArrayParam(null)
}
def methodWithArrayParam(Date date) {
}
}
Multiple parameters where one of them is null
class Foo {
def say() {
methodWithArrayParam(null, new Date())
}
def methodWithArrayParam(Date date1, Date date2) {
}
}
Ambiguous method call due to null parameters
class Foo {
def say() {
methodWithArrayParam(null, new Date())
}
def methodWithArrayParam(Date date1, Date date2) {
}
def methodWithArrayParam(String o, Date date2) {
}
}
Disambiguated method call
class Foo {
def say() {
methodWithArrayParam((Date)null, new Date())
}
def methodWithArrayParam(Date date1, Date date2) {
}
def methodWithArrayParam(String o, Date date2) {
}
}
Activity
Cedric Champeau
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Assignee | Cedric Champeau [ melix ] |
Cedric Champeau
made changes -
| Fix Version/s | 2.0-beta-2 [ 18072 ] | |
| Affects Version/s | 2.0-beta-2 [ 18072 ] | |
| Description |
STC Error when calling a method with an argument of null when the parameter is an array
{code} import groovy.transform.* @TypeChecked class Foo { def say() { methodWithArrayParam(null) // STC Error } def methodWithArrayParam(String[] s) { } } {code} |
STC Error when calling a method with an argument of null when the parameter is an array
{code} import groovy.transform.* @TypeChecked class Foo { def say() { methodWithArrayParam(null) // STC Error } def methodWithArrayParam(String[] s) { } } {code} Other cases tested too: {code:title=Simple method call with null argument} class Foo { def say() { methodWithArrayParam(null) } def methodWithArrayParam(Date date) { } } {code} {code:title=Multiple parameters where one of them is null} class Foo { def say() { methodWithArrayParam(null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } } {code} {code:title=Ambiguous method call due to null parameters} class Foo { def say() { methodWithArrayParam(null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } def methodWithArrayParam(String o, Date date2) { } } {code} {code:Disambiguated method call} class Foo { def say() { methodWithArrayParam((Date)null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } def methodWithArrayParam(String o, Date date2) { } } {code} |
Cedric Champeau
made changes -
| Description |
STC Error when calling a method with an argument of null when the parameter is an array
{code} import groovy.transform.* @TypeChecked class Foo { def say() { methodWithArrayParam(null) // STC Error } def methodWithArrayParam(String[] s) { } } {code} Other cases tested too: {code:title=Simple method call with null argument} class Foo { def say() { methodWithArrayParam(null) } def methodWithArrayParam(Date date) { } } {code} {code:title=Multiple parameters where one of them is null} class Foo { def say() { methodWithArrayParam(null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } } {code} {code:title=Ambiguous method call due to null parameters} class Foo { def say() { methodWithArrayParam(null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } def methodWithArrayParam(String o, Date date2) { } } {code} {code:Disambiguated method call} class Foo { def say() { methodWithArrayParam((Date)null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } def methodWithArrayParam(String o, Date date2) { } } {code} |
STC Error when calling a method with an argument of null when the parameter is an array
{code:title=Null parameter with array argument} import groovy.transform.* @TypeChecked class Foo { def say() { methodWithArrayParam(null) // STC Error } def methodWithArrayParam(String[] s) { } } {code} Other cases tested too: {code:title=Simple method call with null argument} class Foo { def say() { methodWithArrayParam(null) } def methodWithArrayParam(Date date) { } } {code} {code:title=Multiple parameters where one of them is null} class Foo { def say() { methodWithArrayParam(null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } } {code} {code:title=Ambiguous method call due to null parameters} class Foo { def say() { methodWithArrayParam(null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } def methodWithArrayParam(String o, Date date2) { } } {code} {code:title=Disambiguated method call} class Foo { def say() { methodWithArrayParam((Date)null, new Date()) } def methodWithArrayParam(Date date1, Date date2) { } def methodWithArrayParam(String o, Date date2) { } } {code} |
Cedric Champeau
made changes -
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Resolution | Fixed [ 1 ] |
Paul King
made changes -
| Status | Resolved [ 5 ] | Closed [ 6 ] |
Fixed typo