d29cd4f183
- and make toString more structured. Change-Id: If62cfb8e7ee110db6dfb713236e119e7e2f0e244 Reviewed-on: https://dart-review.googlesource.com/22401 Reviewed-by: Stephen Adams <sra@google.com>
82 lines
2.3 KiB
Dart
82 lines
2.3 KiB
Dart
// 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.
|
|
|
|
/*element: main:[null]*/
|
|
main() {
|
|
enumValue();
|
|
enumIndex();
|
|
enumValues();
|
|
enumToString1();
|
|
enumToString2();
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Access an enum value.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
enum Enum1 {
|
|
/*element: Enum1.a:[exact=Enum1]*/
|
|
a,
|
|
}
|
|
|
|
/*element: enumValue:[exact=Enum1]*/
|
|
enumValue() => Enum1.a;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Access an enum 'index' property.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
enum Enum2 {
|
|
/*element: Enum2.a:[exact=Enum2]*/
|
|
a,
|
|
}
|
|
|
|
/*element: enumIndex:[exact=JSUInt31]*/
|
|
enumIndex() => Enum2.a. /*[exact=Enum2]*/ index;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Access an enum 'values' property.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
enum Enum3 {
|
|
/*element: Enum3.a:[exact=Enum3]*/
|
|
a,
|
|
/*element: Enum3.b:[exact=Enum3]*/
|
|
b,
|
|
}
|
|
|
|
/*element: enumValues:Container([exact=JSUnmodifiableArray], element: [exact=Enum3], length: 2)*/
|
|
enumValues() => Enum3.values;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Call an enum 'toString' method on a singleton enum.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
enum Enum4 {
|
|
/*element: Enum4.a:[exact=Enum4]*/
|
|
a,
|
|
}
|
|
|
|
/*element: enumToString1:Value([exact=JSString], value: "Enum4.a")*/
|
|
enumToString1() {
|
|
return Enum4.a. /*invoke: [exact=Enum4]*/ toString();
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Call an enum 'toString' method on an enum with multiple values.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
enum Enum5 {
|
|
/*element: Enum5.a:[exact=Enum5]*/
|
|
a,
|
|
/*element: Enum5.b:[exact=Enum5]*/
|
|
b,
|
|
}
|
|
|
|
/*element: enumToString2:[exact=JSString]*/
|
|
enumToString2() {
|
|
Enum5.b. /*invoke: [exact=Enum5]*/ toString();
|
|
return Enum5.a. /*invoke: [exact=Enum5]*/ toString();
|
|
}
|