dart-sdk/tests/language_2/enum/initialization_near_stack_overflow_test.dart
Leaf Petersen b101a7d002 Add language versions to _2 test libraries
Change-Id: Ib33169c3e0ffc870915c189404074a1dea472546
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196548
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Leaf Petersen <leafp@google.com>
2021-04-26 17:58:57 +00:00

36 lines
799 B
Dart

// Copyright (c) 2018, 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.
// @dart = 2.9
// https://github.com/flutter/flutter/issues/25041
// This test may produce a compile time exception from stack overflow during
// enum initialization or succeed in enum initialization depending on exactly
// how much stack is left and used by the compiler. It should never crash nor
// produce a runtime exception.
enum Fruit {
apple,
banana,
}
getFruit() => Fruit.apple;
recurse() {
try {
recurse();
} catch (e, st) {
print("$e ${getFruit()}");
}
}
main() {
try {
recurse();
} on StackOverflowError catch (e) {
// Swallow.
}
}