Files
sdk/tests/language/object_dynamic_method_test.dart
T
2012-04-27 18:45:10 +00:00

34 lines
1.0 KiB
Dart

// 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.
// Test that Object.dynamic returns the identical object.
main() {
// Primitives
var anInt = 5;
var aString = 'Hello';
var aBool = true;
var aDouble = 3.14159;
// Compounds
var aMap = {};
// The type should not change.
Expect.isTrue(dyn(anInt) is int, 'is int');
Expect.isTrue(dyn(aString) is String, 'is String');
Expect.isTrue(dyn(aBool) is bool, 'is bool');
Expect.isTrue(dyn(aMap) is Map, 'is Map');
// The object should be identical.
Expect.isTrue(eq(anInt, anInt.dynamic), 'anInt.dynamic');
Expect.isTrue(eq(aString, aString.dynamic), 'aString.dynamic');
Expect.isTrue(eq(aBool, aBool.dynamic), 'aBool.dynamic');
Expect.isTrue(eq(aDouble, aDouble.dynamic), 'aDouble.dynamic');
Expect.isTrue(eq(aMap, aMap.dynamic), 'aMap.dynamic');
}
dyn(x) => x.dynamic;
eq(a, b) => a === b;