| Index: tests/compiler/dart2js/backend_htype_list_test.dart
|
| ===================================================================
|
| --- tests/compiler/dart2js/backend_htype_list_test.dart (revision 23797)
|
| +++ tests/compiler/dart2js/backend_htype_list_test.dart (working copy)
|
| @@ -1,243 +0,0 @@
|
| -// Copyright (c) 2012, 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 "package:expect/expect.dart";
|
| -import '../../../sdk/lib/_internal/compiler/implementation/js_backend/js_backend.dart';
|
| -import '../../../sdk/lib/_internal/compiler/implementation/ssa/ssa.dart';
|
| -
|
| -import 'compiler_helper.dart';
|
| -import 'parser_helper.dart';
|
| -
|
| -// Source names used throughout the tests.
|
| -const SourceString x = const SourceString("x");
|
| -const SourceString p1 = const SourceString("p1");
|
| -const SourceString p2 = const SourceString("p2");
|
| -const SourceString p3 = const SourceString("p3");
|
| -
|
| -// Lists of types.
|
| -List<HType> B;
|
| -List<HType> I;
|
| -List<HType> II;
|
| -List<HType> IBS;
|
| -List<HType> IIS;
|
| -List<HType> BII;
|
| -List<HType> IBI;
|
| -List<HType> IIB;
|
| -List<HType> III;
|
| -
|
| -FunctionSignature compileAndFindSignature(String code,
|
| - String className,
|
| - String memberName) {
|
| - Uri uri = new Uri(scheme: 'source');
|
| - var compiler = compilerFor(code, uri);
|
| - compiler.runCompiler(uri);
|
| - var cls = findElement(compiler, className);
|
| - var member = cls.lookupLocalMember(buildSourceString(memberName));
|
| - var signature = member.computeSignature(compiler);
|
| - return signature;
|
| -}
|
| -
|
| -HTypeList createHTypeList(List<HType> types) {
|
| - HTypeList result = new HTypeList(types.length);
|
| - result.types.setRange(0, result.length, types);
|
| - return result;
|
| -}
|
| -
|
| -HTypeList createHTypeListWithNamed(List<HType> types,
|
| - List<SourceString> namedArguments) {
|
| - HTypeList result = new HTypeList.withNamedArguments(types.length,
|
| - namedArguments);
|
| - result.types.setRange(0, result.length, types);
|
| - return result;
|
| -}
|
| -
|
| -void checkHTypeList(HTypeList types, List<HType> expected) {
|
| - Expect.equals(expected.length, types.length);
|
| - for (int i = 0; i < expected.length; i++) {
|
| - Expect.equals(expected[i], types.types[i]);
|
| - }
|
| -}
|
| -
|
| -const String TEST_1 = r"""
|
| - class A {
|
| - x(p) => null;
|
| - }
|
| - main() {
|
| - new A().x(1);
|
| - }
|
| -""";
|
| -
|
| -test1() {
|
| - FunctionSignature signature = compileAndFindSignature(TEST_1, "A", "x");
|
| - HTypeList types = createHTypeList(I);
|
| - Selector s = new Selector.call(x, null, 1);
|
| - types = types.unionWithOptionalParameters(s, signature, null);
|
| - checkHTypeList(types, I);
|
| -}
|
| -
|
| -const String TEST_2 = r"""
|
| - class A {
|
| - x(p1, [p2, p3]) => null;
|
| - }
|
| - main() {
|
| - new A().x(1);
|
| - }
|
| -""";
|
| -
|
| -test2_1() {
|
| - FunctionSignature signature = compileAndFindSignature(TEST_2, "A", "x");
|
| - HTypeList types = createHTypeList(<HType>[HType.INTEGER]);
|
| - Selector s = new Selector.call(x, null, 1);
|
| -
|
| - OptionalParameterTypes defaultTypes;
|
| - defaultTypes = new OptionalParameterTypes(2);
|
| - defaultTypes.update(0, p2, HType.BOOLEAN);
|
| - defaultTypes.update(1, p3, HType.STRING);
|
| -
|
| - HTypeList t2 = types.unionWithOptionalParameters(s, signature, defaultTypes);
|
| - checkHTypeList(t2, IBS);
|
| -}
|
| -
|
| -test2_2() {
|
| - FunctionSignature signature = compileAndFindSignature(TEST_2, "A", "x");
|
| - HTypeList types = createHTypeList(II);
|
| - Selector s = new Selector.call(x, null, 2);
|
| -
|
| - OptionalParameterTypes defaultTypes;
|
| - defaultTypes = new OptionalParameterTypes(2);
|
| - defaultTypes.update(0, p2, HType.BOOLEAN);
|
| - defaultTypes.update(1, p3, HType.STRING);
|
| -
|
| - HTypeList t2 = types.unionWithOptionalParameters(s, signature, defaultTypes);
|
| - checkHTypeList(t2, IIS);
|
| -}
|
| -
|
| -
|
| -test2_3() {
|
| - FunctionSignature signature = compileAndFindSignature(TEST_2, "A", "x");
|
| - HTypeList types = createHTypeList(III);
|
| - Selector s = new Selector.call(x, null, 3);
|
| -
|
| - OptionalParameterTypes defaultTypes;
|
| - defaultTypes = new OptionalParameterTypes(2);
|
| - defaultTypes.update(0, p2, HType.BOOLEAN);
|
| - defaultTypes.update(1, p3, HType.STRING);
|
| -
|
| - HTypeList t2 = types.unionWithOptionalParameters(s, signature, defaultTypes);
|
| - checkHTypeList(t2, III);
|
| -}
|
| -
|
| -
|
| -const String TEST_3 = r"""
|
| - class A {
|
| - x(p1, [p2, p3]) => null;
|
| - }
|
| - main() {
|
| - new A().x(1);
|
| - }
|
| -""";
|
| -
|
| -test3_1() {
|
| - FunctionSignature signature = compileAndFindSignature(TEST_3, "A", "x");
|
| -
|
| - OptionalParameterTypes defaultTypes;
|
| - defaultTypes = new OptionalParameterTypes(2);
|
| - defaultTypes.update(0, p2, HType.BOOLEAN);
|
| - defaultTypes.update(1, p3, HType.STRING);
|
| -
|
| - HTypeList types;
|
| - Selector s;
|
| - HTypeList result;
|
| -
|
| - s = new Selector.call(x, null, 2, <SourceString>[p2]);
|
| - types = createHTypeListWithNamed(II, <SourceString>[p2]);
|
| - result = types.unionWithOptionalParameters(s, signature, defaultTypes);
|
| - checkHTypeList(result, IIS);
|
| -
|
| - s = new Selector.call(x, null, 2, <SourceString>[p3]);
|
| - types = createHTypeListWithNamed(II, <SourceString>[p3]);
|
| - result = types.unionWithOptionalParameters(s, signature, defaultTypes);
|
| - checkHTypeList(result, IBI);
|
| -}
|
| -
|
| -test3_2() {
|
| - FunctionSignature signature = compileAndFindSignature(TEST_2, "A", "x");
|
| -
|
| - OptionalParameterTypes defaultTypes;
|
| - defaultTypes = new OptionalParameterTypes(2);
|
| - defaultTypes.update(0, p2, HType.BOOLEAN);
|
| - defaultTypes.update(1, p3, HType.STRING);
|
| -
|
| - HTypeList types;
|
| - Selector s;
|
| - HTypeList result;
|
| -
|
| - s = new Selector.call(x, null, 2, <SourceString>[p2, p3]);
|
| - types = createHTypeListWithNamed(III, <SourceString>[p2, p3]);
|
| - result = types.unionWithOptionalParameters(s1, signature, defaultTypes);
|
| - checkHTypeList(result, III);
|
| -
|
| - s = new Selector.call(x, null, 2, <SourceString>[p3, p3]);
|
| - types = createHTypeListWithNamed(III, <SourceString>[p2, p3]);
|
| - result = types.unionWithOptionalParameters(s2, signature, defaultTypes);
|
| - checkHTypeList(result, III);
|
| -}
|
| -
|
| -
|
| -const String TEST_4 = r"""
|
| - class A {
|
| - x([p1, p2, p3]) => null;
|
| - }
|
| - main() {
|
| - new A().x();
|
| - }
|
| -""";
|
| -
|
| -test4() {
|
| - FunctionSignature signature = compileAndFindSignature(TEST_4, "A", "x");
|
| -
|
| - OptionalParameterTypes defaultTypes;
|
| - defaultTypes = new OptionalParameterTypes(3);
|
| - defaultTypes.update(0, p1, HType.INTEGER);
|
| - defaultTypes.update(1, p2, HType.INTEGER);
|
| - defaultTypes.update(2, p3, HType.INTEGER);
|
| -
|
| - HTypeList types;
|
| - Selector s;
|
| - HTypeList result;
|
| -
|
| - s = new Selector.call(x, null, 1, <SourceString>[p1]);
|
| - types = createHTypeListWithNamed(B, <SourceString>[p1]);
|
| - result = types.unionWithOptionalParameters(s, signature, defaultTypes);
|
| - checkHTypeList(result, BII);
|
| -
|
| - s = new Selector.call(x, null, 1, <SourceString>[p2]);
|
| - types = createHTypeListWithNamed(B, <SourceString>[p2]);
|
| - result = types.unionWithOptionalParameters(s, signature, defaultTypes);
|
| - checkHTypeList(result, IBI);
|
| -
|
| - s = new Selector.call(x, null, 1, <SourceString>[p3]);
|
| - types = createHTypeListWithNamed(B, <SourceString>[p3]);
|
| - result = types.unionWithOptionalParameters(s, signature, defaultTypes);
|
| - checkHTypeList(result, IIB);
|
| -}
|
| -
|
| -main() {
|
| - B = <HType>[HType.BOOLEAN];
|
| - I = <HType>[HType.INTEGER];
|
| - II = <HType>[HType.INTEGER, HType.INTEGER];
|
| - IBS = <HType>[HType.INTEGER, HType.BOOLEAN, HType.STRING];
|
| - IIS = <HType>[HType.INTEGER, HType.INTEGER, HType.STRING];
|
| - BII = <HType>[HType.BOOLEAN, HType.INTEGER, HType.INTEGER];
|
| - IBI = <HType>[HType.INTEGER, HType.BOOLEAN, HType.INTEGER];
|
| - IIB = <HType>[HType.INTEGER, HType.INTEGER, HType.BOOLEAN];
|
| - III = <HType>[HType.INTEGER, HType.INTEGER, HType.INTEGER];
|
| -
|
| - test1();
|
| - test2_1();
|
| - test2_2();
|
| - test2_3();
|
| - test3_1();
|
| - test4();
|
| -}
|
|
|