// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. class Class { int get field => 42; bool operator >=(Class cls) => true; Class operator >(int i) => new Class(); } argumentTypeNotAssignable(Class cls) { switch (cls) { case >= 0: // Error print(0); } } relationalPatternOperatorReturnTypeNotAssignableToBool(Class cls) { switch (cls) { case > 0: // Error print(0); } } patternTypeMismatchInIrrefutableContext(List list) { var [a] = list; // Error } duplicateAssignmentPatternVariable(List list) { String a = ''; [a, a] = list; // Error } duplicateRecordPatternField(o) { switch (o) { case (field: 1, field: 2): // Error case Class(field: 1, field: 2): // Error print(0); } } duplicateRestPattern(o) { switch (o) { case [..., ...]: // Error case {..., ...}: // Error } } emptyMapPattern(o) { switch (o) { case {}: // Error } } singleRestPatternInMap(o) { switch (o) { case {...}: // Error } } matchedTypeIsStrictlyNonNullable(List list) { if (list case [var a!, var b?]) { // Warnings print(0); } } nonBooleanCondition(int i) { if (i case 0 when i) { // Error print(0); } } refutablePatternInIrrefutableContext(int? x) { var (a?) = x; // Error } restPatternNotLastInMap(o) { if (o case {..., 5: 3}) { // Error print(0); } } restPatternWithSubPatternInMap(o) { if (o case {5: 3, ...var a}) { // Error print(0); } }