blob: ce81c7b3d70ada74720a766f1d2428a328c70a46 [file] [log] [blame]
// Copyright (c) 2019, 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.
import 'dart:_rti' as rti;
import "package:expect/expect.dart";
testDynamic1() {
var universe = rti.testingCreateUniverse();
var dynamicRti1 = rti.testingUniverseEval(universe, 'dynamic');
var dynamicRti2 = rti.testingUniverseEval(universe, ',,dynamic,,');
Expect.isTrue(
identical(dynamicRti1, dynamicRti2), 'dynamic should be identical');
Expect.isFalse(dynamicRti1 is String);
Expect.equals('dynamic', rti.testingRtiToString(dynamicRti1));
}
testDynamic2() {
var universe = rti.testingCreateUniverse();
var dynamicRti1 = rti.testingUniverseEval(universe, 'dynamic');
var dynamicRti2 = rti.testingUniverseEval(universe, ',,@,,');
Expect.isTrue(
identical(dynamicRti1, dynamicRti2), 'dynamic should be identical');
Expect.isFalse(dynamicRti1 is String);
Expect.equals('dynamic', rti.testingRtiToString(dynamicRti1));
}
testInterface1() {
var universe = rti.testingCreateUniverse();
var rti1 = rti.testingUniverseEval(universe, 'int');
var rti2 = rti.testingUniverseEval(universe, ',,int,,');
Expect.isTrue(identical(rti1, rti2));
Expect.isFalse(rti1 is String);
Expect.equals('int', rti.testingRtiToString(rti1));
}
testInterface2() {
var universe = rti.testingCreateUniverse();
var rti1 = rti.testingUniverseEval(universe, 'Foo<int,bool>');
var rti2 = rti.testingUniverseEval(universe, 'Foo<int,bool>');
Expect.isTrue(identical(rti1, rti2));
Expect.isFalse(rti1 is String);
Expect.equals('Foo<int, bool>', rti.testingRtiToString(rti1));
}
testInterface3() {
var universe = rti.testingCreateUniverse();
var rti1 = rti.testingUniverseEval(universe, 'Foo<Bar<int>,Bar<bool>>');
var rti2 = rti.testingUniverseEval(universe, 'Foo<Bar<int>,Bar<bool>>');
Expect.isTrue(identical(rti1, rti2));
Expect.isFalse(rti1 is String);
Expect.equals('Foo<Bar<int>, Bar<bool>>', rti.testingRtiToString(rti1));
}
testInterface4() {
var universe = rti.testingCreateUniverse();
var rti1 = rti.testingUniverseEval(universe, 'Foo<Foo<Foo<Foo<int>>>>');
var rti2 = rti.testingUniverseEval(universe, 'Foo<Foo<Foo<Foo<int>>>>');
Expect.isTrue(identical(rti1, rti2));
Expect.isFalse(rti1 is String);
Expect.equals('Foo<Foo<Foo<Foo<int>>>>', rti.testingRtiToString(rti1));
}
main() {
testDynamic1();
testDynamic2();
testInterface1();
testInterface2();
testInterface3();
testInterface4();
}