groovy
  1. groovy
  2. GROOVY-5175

Calling a method with a null argument's value when the parameter is an array

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major 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 :
      0

      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

        CÚdric Champeau made changes -
        Field Original Value New Value
        Assignee Cedric Champeau [ melix ]
        CÚdric 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}
        Hide
        CÚdric Champeau added a comment -

        Fixed typo

        Show
        CÚdric Champeau added a comment - Fixed typo
        CÚdric 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}
        CÚdric Champeau made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Paul King made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            CÚdric Champeau
            Reporter:
            Valery Shyshkin
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: