Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Side by Side Diff: tests/compiler/dart2js/simple_inferrer_unregister_call_test.dart

Issue 17759007: First pass at asynchronous input loading in dart2js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'package:expect/expect.dart'; 5 import 'package:expect/expect.dart';
6 6 import "package:async_helper/async_helper.dart";
7 import 'compiler_helper.dart'; 7 import 'compiler_helper.dart';
8 import 'parser_helper.dart'; 8 import 'parser_helper.dart';
9 9
10 const String TEST = """ 10 const String TEST = """
11 var a = ''; 11 var a = '';
12 class A { 12 class A {
13 operator+(other) => other; 13 operator+(other) => other;
14 } 14 }
15 15
16 foo() { 16 foo() {
17 // The following '+' call will first say that it may call A::+, 17 // The following '+' call will first say that it may call A::+,
18 // String::+, or int::+. After all methods have been analyzed, we know 18 // String::+, or int::+. After all methods have been analyzed, we know
19 // that a is of type String, and therefore, this method cannot call 19 // that a is of type String, and therefore, this method cannot call
20 // A::+. Therefore, the type of the parameter of A::+ will be the 20 // A::+. Therefore, the type of the parameter of A::+ will be the
21 // one given by the other calls. 21 // one given by the other calls.
22 return a + 'foo'; 22 return a + 'foo';
23 } 23 }
24 24
25 main() { 25 main() {
26 new A() + 42; 26 new A() + 42;
27 foo(); 27 foo();
28 } 28 }
29 """; 29 """;
30 30
31 31
32 void main() { 32 void main() {
33 Uri uri = new Uri(scheme: 'source'); 33 Uri uri = new Uri(scheme: 'source');
34 var compiler = compilerFor(TEST, uri); 34 var compiler = compilerFor(TEST, uri);
35 compiler.runCompiler(uri); 35 asyncTest(() => compiler.runCompiler(uri).then((_) {
36 var typesInferrer = compiler.typesTask.typesInferrer; 36 var typesInferrer = compiler.typesTask.typesInferrer;
37 37
38 checkReturnInClass(String className, String methodName, type) { 38 checkReturnInClass(String className, String methodName, type) {
39 var cls = findElement(compiler, className); 39 var cls = findElement(compiler, className);
40 var element = cls.lookupLocalMember(buildSourceString(methodName)); 40 var element = cls.lookupLocalMember(buildSourceString(methodName));
41 Expect.equals(type, typesInferrer.getReturnTypeOfElement(element)); 41 Expect.equals(type, typesInferrer.getReturnTypeOfElement(element));
42 } 42 }
43 43
44 checkReturnInClass('A', '+', compiler.typesTask.intType); 44 checkReturnInClass('A', '+', compiler.typesTask.intType);
45 }));
45 } 46 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/simple_inferrer_try_catch_test.dart ('k') | tests/compiler/dart2js/size_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698