| // TODO(multitest): This was automatically migrated from a multitest and may |
| // contain strange or dead code. |
| |
| // Copyright (c) 2013, 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. |
| |
| // Test symbol literals. |
| |
| library symbol_literal_test; |
| |
| import 'package:expect/expect.dart'; |
| |
| foo(a, b) => Expect.isTrue(identical(a, b)); |
| |
| var check = foo; // Indirection used to avoid inlining. |
| |
| testSwitch(Symbol s) { |
| switch (s) { |
| case #abc: |
| return 1; |
| case const Symbol("def"): |
| return 2; |
| default: |
| return 0; |
| } |
| } |
| |
| main() { |
| bool doChecks = false; |
| doChecks = true; |
| if (doChecks) { |
| check(const Symbol("a"), #a); |
| check(const Symbol("a"), #a); |
| check(const Symbol("ab"), #ab); |
| check(const Symbol("ab"), #ab); |
| check(const Symbol("a.b"), #a.b); |
| check(const Symbol("a.b"), #a.b); |
| check(const Symbol("=="), #==); |
| check(const Symbol("=="), #==); |
| check(const Symbol("a.toString"), #a.toString); |
| } |
| |
| Expect.equals(1, testSwitch(#abc)); |
| |
| const m = const <Symbol, int>{#A: 0, #B: 1}; |
| Expect.equals(1, m[#B]); |
| |
| // Tries to call the symbol literal #a.toString |
| |
| } |