# XO0403: wrong arguments or fields: count, names, missing, or duplicates

A call, struct literal, variant construction, or type application does not match its declaration: too many or too few arguments, an unknown or repeated parameter name, a positional argument after a named one, a missing struct field without a default, or the wrong number of type arguments. Variants with several fields are constructed with names (`A(x: 1, y: 2)`), and `ignore_err` needs its reason. See core 2.2, 2.3, and 3.2.

## Example

```xo
struct P { x: Int, y: Int }

fn f() -> P { P{x: 1} }
```

## Fix

```xo
struct P { x: Int, y: Int }

fn f() -> P { P{x: 1, y: 0} }
```

Run `xo explain XO0403` for this text in a terminal, or see
[section 10.6 of the specification](../../spec/core/#106-diagnostic-codes).

