| Index: tests/compiler/dart2js/closure_tracer_test.dart
|
| ===================================================================
|
| --- tests/compiler/dart2js/closure_tracer_test.dart (revision 31272)
|
| +++ tests/compiler/dart2js/closure_tracer_test.dart (working copy)
|
| @@ -1,120 +0,0 @@
|
| -// 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.
|
| -
|
| -import 'package:expect/expect.dart';
|
| -import "package:async_helper/async_helper.dart";
|
| -
|
| -import 'compiler_helper.dart';
|
| -import 'parser_helper.dart';
|
| -
|
| -const String TEST = '''
|
| -testFunctionStatement() {
|
| - var res;
|
| - closure(a) => res = a;
|
| - closure(42);
|
| - return res;
|
| -}
|
| -
|
| -testFunctionExpression() {
|
| - var res;
|
| - var closure = (a) => res = a;
|
| - closure(42);
|
| - return res;
|
| -}
|
| -
|
| -var staticField;
|
| -
|
| -testStoredInStatic() {
|
| - var res;
|
| - closure(a) => res = a;
|
| - staticField = closure;
|
| - staticField(42);
|
| - return res;
|
| -}
|
| -
|
| -class A {
|
| - var field;
|
| - A(this.field);
|
| - static foo(a) => topLevel3 = a;
|
| -}
|
| -
|
| -testStoredInInstance() {
|
| - var res;
|
| - closure(a) => res = a;
|
| - var a = new A(closure);
|
| - a.field(42);
|
| - return res;
|
| -}
|
| -
|
| -foo(closure) {
|
| - closure(42);
|
| -}
|
| -
|
| -testPassedInParameter() {
|
| - var res;
|
| - closure(a) => res = a;
|
| - foo(closure);
|
| - return res;
|
| -}
|
| -
|
| -var topLevel1;
|
| -foo2(a) => topLevel1 = a;
|
| -testStaticClosure1() {
|
| - var a = foo2;
|
| - a(42);
|
| - return topLevel1;
|
| -}
|
| -
|
| -var topLevel2;
|
| -bar(a) => topLevel2 = a;
|
| -testStaticClosure2() {
|
| - var a = bar;
|
| - a(42);
|
| - var b = bar;
|
| - b(2.5);
|
| - return topLevel2;
|
| -}
|
| -
|
| -var topLevel3;
|
| -testStaticClosure3() {
|
| - var a = A.foo;
|
| - a(42);
|
| - return topLevel3;
|
| -}
|
| -
|
| -main() {
|
| - testFunctionStatement();
|
| - testFunctionExpression();
|
| - testStoredInStatic();
|
| - testStoredInInstance();
|
| - testPassedInParameter();
|
| - testStaticClosure1();
|
| - testStaticClosure2();
|
| - testStaticClosure3();
|
| -}
|
| -''';
|
| -
|
| -void main() {
|
| - Uri uri = new Uri(scheme: 'source');
|
| - var compiler = compilerFor(TEST, uri);
|
| - asyncTest(() => compiler.runCompiler(uri).then((_) {
|
| - var typesTask = compiler.typesTask;
|
| - var typesInferrer = typesTask.typesInferrer;
|
| -
|
| - checkType(String name, type) {
|
| - var element = findElement(compiler, name);
|
| - var mask = typesInferrer.getReturnTypeOfElement(element);
|
| - Expect.equals(type.nullable(), mask.simplify(compiler), name);
|
| - }
|
| -
|
| - checkType('testFunctionStatement', typesTask.uint31Type);
|
| - checkType('testFunctionExpression', typesTask.uint31Type);
|
| - checkType('testStoredInInstance', typesTask.uint31Type);
|
| - checkType('testStoredInStatic', typesTask.uint31Type);
|
| - checkType('testPassedInParameter', typesTask.uint31Type);
|
| - checkType('testStaticClosure1', typesTask.uint31Type);
|
| - checkType('testStaticClosure2', typesTask.numType);
|
| - checkType('testStaticClosure3', typesTask.uint31Type);
|
| - }));
|
| -}
|
|
|