// Copyright (c) 2017, 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.7 /*member: main:[null]*/ main() { switchWithoutDefault(); switchWithDefault(); switchWithDefaultWithoutBreak(); switchWithContinue(); switchWithoutContinue(); } //////////////////////////////////////////////////////////////////////////////// // Switch statement without default case. //////////////////////////////////////////////////////////////////////////////// /*member: _switchWithoutDefault:Union(null, [exact=JSString], [exact=JSUInt31])*/ _switchWithoutDefault(/*[exact=JSUInt31]*/ o) { var local; switch (o) { case 0: local = 0; break; case 1: local = ''; break; } return local; } /*member: switchWithoutDefault:[null]*/ switchWithoutDefault() { _switchWithoutDefault(0); _switchWithoutDefault(1); } //////////////////////////////////////////////////////////////////////////////// // Switch statement with default case. //////////////////////////////////////////////////////////////////////////////// /*member: _switchWithDefault:Union([exact=JSString], [exact=JSUInt31])*/ _switchWithDefault(/*[exact=JSUInt31]*/ o) { var local; switch (o) { case 0: local = 0; break; case 1: default: local = ''; break; } return local; } /*member: switchWithDefault:[null]*/ switchWithDefault() { _switchWithDefault(0); _switchWithDefault(1); } //////////////////////////////////////////////////////////////////////////////// // Switch statement with default case without break. //////////////////////////////////////////////////////////////////////////////// /*member: _switchWithDefaultWithoutBreak:Union([exact=JSString], [exact=JSUInt31])*/ _switchWithDefaultWithoutBreak(/*[exact=JSUInt31]*/ o) { var local; switch (o) { case 0: local = 0; break; case 1: default: local = ''; } return local; } /*member: switchWithDefaultWithoutBreak:[null]*/ switchWithDefaultWithoutBreak() { _switchWithDefaultWithoutBreak(0); _switchWithDefaultWithoutBreak(1); } //////////////////////////////////////////////////////////////////////////////// // Switch statement with continue. //////////////////////////////////////////////////////////////////////////////// /*member: _switchWithContinue:Union(null, [exact=JSBool], [exact=JSString], [exact=JSUInt31])*/ _switchWithContinue(/*[exact=JSUInt31]*/ o) { dynamic local; switch (o) { case 0: local = 0; continue label; label: case 1: local = local . /*Union(null, [exact=JSBool], [exact=JSString], [exact=JSUInt31])*/ isEven; break; case 2: default: local = ''; } return local; } /*member: switchWithContinue:[null]*/ switchWithContinue() { _switchWithContinue(0); _switchWithContinue(1); } //////////////////////////////////////////////////////////////////////////////// // Switch statement without continue. Identical to previous test but without // the continue statement. //////////////////////////////////////////////////////////////////////////////// /*member: _switchWithoutContinue:Union([exact=JSString], [exact=JSUInt31])*/ _switchWithoutContinue(/*[exact=JSUInt31]*/ o) { dynamic local; switch (o) { case 0: local = 0; break; case 1: local = local. /*[null]*/ isEven; break; case 2: default: local = ''; } return local; } /*member: switchWithoutContinue:[null]*/ switchWithoutContinue() { _switchWithoutContinue(0); _switchWithoutContinue(1); }