dart-sdk/tests/language/switch_case_static_const_test.dart
paulberry@google.com f49b1f0caf Check const map literal keys and switch case exprs using type of constant.
The following type rules are defined based on the actual type of the
const object:

- CONST_MAP_KEY_EXPRESSION_TYPE_IMPLEMENTS_EQUALS
- INCONSISTENT_CASE_EXPRESSION_TYPES
- CASE_EXPRESSION_TYPE_IMPLEMENTS_EQUALS

Previously, we were using the propagated type for the case expression
checks, and the static type for the const map check.

BUG=dartbug.com/11697
R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//267923004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35723 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-03 17:14:08 +00:00

25 lines
411 B
Dart

// Copyright (c) 2014, 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.
class A {
static const S = 'A.S';
}
const S = 'S';
foo(var p) {
switch (p) {
case S:
break;
case A.S:
break;
case 'abc':
break;
}
}
main() {
foo('p');
}