|  | // 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. | 
|  |  | 
|  | // 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. | 
|  | } | 
|  | } |