Files
sdk/pkg/front_end/testcases/patterns/dynamic_guard.dart
T
Johnni Winther 48df4211f8 [cfe] Include more implicit cast in lowering
This adds the implicit casts to the result of relational pattern
matching and guards in if-case elements/map entries.

Closes #51724

Change-Id: I368528534341194555f091174151d8510b136358
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/291221
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2023-03-27 13:35:08 +00:00

24 lines
553 B
Dart

// 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.
dynamic guard() => true;
main() {
var [a] = [5];
int b;
[b] = [if (a case == 5 when guard()) 5];
if (a case == 5 when guard()) {
a = 6;
}
var c = switch (a) {
int d when guard() => d,
_ => 0,
};
switch (b) {
case int e when guard():
print(a);
}
var d = {if (a case == 5 when guard()) 5: 6};
}