E1021

E1021#

Some arguments of constructor are omitted in pattern.

Erroneous example#

enum E {
  A(Int, w~ : Int, h~ : Int)
}

fn main {
  match A(0, w=1, h=2) {
    A(v, w~) => { // Warning: The argument(s) h of constructor A are omitted.
      println(v)
      println(w)
    }
  }
}

Suggestion#

If you want to omit some arguments, add the .. to the end of the pattern:

fn main {
  match A(0, w=1, h=2) {
    A(v, w~, ..) => {
      println(v)
      println(w)
    }
  }
}

Or, you can match all arguments:

fn main {
  match A(0, w=1, h=2) {
    A(v, w~, h~) => {
      println(v)
      println(w)
      println(h)
    }
  }
}