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

Side by Side Diff: tests/compiler/dart2js/resolver_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: Created 7 years, 6 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 import 'dart:async';
6 import 'dart:collection'; 7 import 'dart:collection';
7 8
8 import "../../../sdk/lib/_internal/compiler/implementation/resolution/resolution .dart"; 9 import "../../../sdk/lib/_internal/compiler/implementation/resolution/resolution .dart";
9 import "compiler_helper.dart"; 10 import "compiler_helper.dart";
10 import "parser_helper.dart"; 11 import "parser_helper.dart";
11 12
12 import '../../../sdk/lib/_internal/compiler/implementation/dart_types.dart'; 13 import '../../../sdk/lib/_internal/compiler/implementation/dart_types.dart';
13 14
14 Node buildIdentifier(String name) => new Identifier(scan(name)); 15 Node buildIdentifier(String name) => new Identifier(scan(name));
15 16
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 777
777 at(Link link, int index) => (index == 0) ? link.head : at(link.tail, index - 1); 778 at(Link link, int index) => (index == 0) ? link.head : at(link.tail, index - 1);
778 779
779 List<String> asSortedStrings(Link link) { 780 List<String> asSortedStrings(Link link) {
780 List<String> result = <String>[]; 781 List<String> result = <String>[];
781 for (; !link.isEmpty; link = link.tail) result.add(link.head.toString()); 782 for (; !link.isEmpty; link = link.tail) result.add(link.head.toString());
782 result.sort((s1, s2) => s1.compareTo(s2)); 783 result.sort((s1, s2) => s1.compareTo(s2));
783 return result; 784 return result;
784 } 785 }
785 786
786 compileScript(String source) { 787 Future compileScript(String source) {
787 Uri uri = new Uri(scheme: 'source'); 788 Uri uri = new Uri(scheme: 'source');
788 MockCompiler compiler = compilerFor(source, uri); 789 MockCompiler compiler = compilerFor(source, uri);
789 compiler.runCompiler(uri); 790 return compiler.runCompiler(uri).then((_) {
790 return compiler; 791 return compiler;
792 });
791 } 793 }
792 794
793 checkMemberResolved(compiler, className, memberName) { 795 checkMemberResolved(compiler, className, memberName) {
794 Element memberElement = findElement(compiler, className) 796 Element memberElement = findElement(compiler, className)
795 .lookupLocalMember(memberName); 797 .lookupLocalMember(memberName);
796 Expect.isNotNull(memberElement); 798 Expect.isNotNull(memberElement);
797 Expect.isNotNull( 799 Expect.isNotNull(
798 compiler.enqueuer.resolution.getCachedElements(memberElement)); 800 compiler.enqueuer.resolution.getCachedElements(memberElement));
799 } 801 }
800 802
801 testToString() { 803 testToString() {
802 final script = r"class C { toString() => 'C'; } main() { '${new C()}'; }"; 804 final script = r"class C { toString() => 'C'; } main() { '${new C()}'; }";
803 final compiler = compileScript(script); 805 compileScript(script).then((compiler) {
804 806 checkMemberResolved(compiler, 'C', buildSourceString('toString'));
805 checkMemberResolved(compiler, 'C', buildSourceString('toString')); 807 });
806 } 808 }
807 809
808 operatorName(op, isUnary) { 810 operatorName(op, isUnary) {
809 return Elements.constructOperatorName(new SourceString(op), isUnary); 811 return Elements.constructOperatorName(new SourceString(op), isUnary);
810 } 812 }
811 813
812 testIndexedOperator() { 814 testIndexedOperator() {
813 final script = r""" 815 final script = r"""
814 class C { 816 class C {
815 operator[](ix) => ix; 817 operator[](ix) => ix;
816 operator[]=(ix, v) {} 818 operator[]=(ix, v) {}
817 } 819 }
818 main() { var c = new C(); c[0]++; }"""; 820 main() { var c = new C(); c[0]++; }""";
819 final compiler = compileScript(script); 821 compileScript(script).then((compiler) {
820 822 checkMemberResolved(compiler, 'C', operatorName('[]', false));
821 checkMemberResolved(compiler, 'C', operatorName('[]', false)); 823 checkMemberResolved(compiler, 'C', operatorName('[]=', false));
822 checkMemberResolved(compiler, 'C', operatorName('[]=', false)); 824 });
823 } 825 }
824 826
825 testIncrementsAndDecrements() { 827 testIncrementsAndDecrements() {
826 final script = r""" 828 final script = r"""
827 class A { operator+(o)=>null; } 829 class A { operator+(o)=>null; }
828 class B { operator+(o)=>null; } 830 class B { operator+(o)=>null; }
829 class C { operator-(o)=>null; } 831 class C { operator-(o)=>null; }
830 class D { operator-(o)=>null; } 832 class D { operator-(o)=>null; }
831 main() { 833 main() {
832 var a = new A(); 834 var a = new A();
833 a++; 835 a++;
834 var b = new B(); 836 var b = new B();
835 ++b; 837 ++b;
836 var c = new C(); 838 var c = new C();
837 c--; 839 c--;
838 var d = new D(); 840 var d = new D();
839 --d; 841 --d;
840 }"""; 842 }""";
841 final compiler = compileScript(script); 843 compileScript(script).then((compiler) {
842 844 checkMemberResolved(compiler, 'A', operatorName('+', false));
843 checkMemberResolved(compiler, 'A', operatorName('+', false)); 845 checkMemberResolved(compiler, 'B', operatorName('+', false));
844 checkMemberResolved(compiler, 'B', operatorName('+', false)); 846 checkMemberResolved(compiler, 'C', operatorName('-', false));
845 checkMemberResolved(compiler, 'C', operatorName('-', false)); 847 checkMemberResolved(compiler, 'D', operatorName('-', false));
846 checkMemberResolved(compiler, 'D', operatorName('-', false)); 848 });
847 } 849 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698