// Copyright (c) 2011, 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.

/// @assertion The throw expression is used to raise an exception.
/// throwExpression:
///   throw expression
/// ;
/// throwExpressionWithoutCascade:
///   throw expressionWithoutCascade
/// ;
/// @description Checks that it is a compile-error if to use throw with no
/// expression in switch statement.
/// @author rodionov


main() {
  switch (1) {
    case 1:
      break;
    case 2:
      throw;
//         ^
// [analyzer] unspecified
// [cfe] unspecified
    default:
  }
}
