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