blob: 4c96cf4abd8bb2b973279a5c02dd85d4e10ec1ba [file] [log] [blame]
// 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.
exhaustiveSwitchNum(num n) {
/*
checkingOrder={num,double,int},
subtypes={double,int},
type=num
*/
switch (n) {
/*space=num*/
case num n:
}
}
exhaustiveSwitchIntDouble(num n) {
/*
checkingOrder={num,double,int},
subtypes={double,int},
type=num
*/
switch (n) {
/*space=int*/
case int i:
/*space=double*/
case double d:
}
}
exhaustiveSwitchNullable(num? n) {
/*
checkingOrder={num?,num,Null,double,int},
expandedSubtypes={double,int,Null},
subtypes={num,Null},
type=num?
*/
switch (n) {
/*space=int*/
case int i:
/*space=double*/
case double d:
/*space=Null*/
case null:
}
}
nonExhaustiveSwitch(num n1, num n2, num? n3) {
/*
checkingOrder={num,double,int},
error=non-exhaustive:double(),
subtypes={double,int},
type=num
*/
switch (n1) {
/*space=int*/
case int i:
}
/*
checkingOrder={num,double,int},
error=non-exhaustive:int(),
subtypes={double,int},
type=num
*/
switch (n2) {
/*space=double*/
case double d:
}
/*
checkingOrder={num?,num,Null,double,int},
error=non-exhaustive:null,
expandedSubtypes={double,int,Null},
subtypes={num,Null},
type=num?
*/
switch (n3) {
/*space=int*/
case int i:
/*space=double*/
case double d:
}
}