| { |
| "scenario": "Additional data model errors", |
| "defaultTestProperties": { |
| "locale": "en-US" |
| }, |
| "tests": [ |
| { |
| "src": ".input {$foo :number} .input {$bar :number} .match $foo $bar one{{one}}", |
| "expErrors": [ |
| { |
| "type": "variant-key-mismatch" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$foo :number} .input {$bar :number} .match $foo $bar one {{one}}", |
| "expErrors": [ |
| { |
| "type": "variant-key-mismatch" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$foo :number} .input {$bar :number} .match $foo $bar one {{one}}", |
| "expErrors": [ |
| { |
| "type": "variant-key-mismatch" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$foo :number} .match $foo * * {{foo}}", |
| "expErrors": [ |
| { |
| "type": "variant-key-mismatch" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$one :number} .match $one\n 1 2 {{Too many}}\n * {{Otherwise}}", |
| "expErrors": [ |
| { |
| "type": "variant-key-mismatch" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$one :number} .input {$two :number} .match $one $two \n 1 2 {{Two keys}}\n * {{Missing a key}}\n * * {{Otherwise}}", |
| "expErrors": [ |
| { |
| "type": "variant-key-mismatch" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$foo :x} .input {$bar :X} .match $foo $bar * {{foo}}", |
| "expErrors": [ |
| { |
| "type": "variant-key-mismatch" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$one :number} .match $one\n 1 {{Value is one}}\n 2 {{Value is two}}", |
| "expErrors": [ |
| { |
| "type": "missing-fallback-variant" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$one :number} .input {$two :number} .match $one $two\n 1 * {{First is one}}\n * 1 {{Second is one}}", |
| "expErrors": [ |
| { |
| "type": "missing-fallback-variant" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".match $one\n 1 {{Value is one}}\n * {{Value is not one}}", |
| "expErrors": [ |
| { |
| "type": "missing-selector-annotation" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".local $one = {|The one|}\n .match $one\n 1 {{Value is one}}\n * {{Value is not one}}", |
| "expErrors": [ |
| { |
| "type": "missing-selector-annotation" |
| } |
| ] |
| }, |
| { |
| "src": ".input {$foo} .match $foo one {{one}} * {{other}}", |
| "expErrors": [ |
| { |
| "type": "missing-selector-annotation" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".local $foo = {$bar} .match $foo one {{one}} * {{other}}", |
| "expErrors": [ |
| { |
| "type": "missing-selector-annotation" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".local $x = {|1|} .input {$x :number} {{{$x}}}", |
| "expErrors": [ |
| { |
| "type": "duplicate-declaration" |
| } |
| ] |
| }, |
| |
| { |
| "src": ".input {$x :number} .input {$x :string} {{{$x}}}", |
| "expErrors": [ |
| { |
| "type": "duplicate-declaration" |
| } |
| ] |
| }, |
| |
| { |
| "src": "{:foo a=1 b=2 a=1}", |
| "expErrors": [ |
| { |
| "type": "duplicate-option-name" |
| } |
| ] |
| }, |
| |
| { |
| "src": "{:foo a=1 a=1}", |
| "expErrors": [ |
| { |
| "type": "duplicate-option-name" |
| } |
| ] |
| }, |
| |
| { |
| "src": "{:foo a=1 a=2}", |
| "expErrors": [ |
| { |
| "type": "duplicate-option-name" |
| } |
| ] |
| }, |
| |
| { |
| "src": "{|x| :foo a=1 a=2}", |
| "expErrors": [ |
| { |
| "type": "duplicate-option-name" |
| } |
| ] |
| } |
| ] |
| } |