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

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

Issue 1238783003: Handle deferred access as pre-step in SemanticSendVisitor. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 years, 5 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
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 library dart2js.semantics_visitor_test; 5 library dart2js.semantics_visitor_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:mirrors'; 8 import 'dart:mirrors';
9 import 'package:async_helper/async_helper.dart'; 9 import 'package:async_helper/async_helper.dart';
10 import 'package:expect/expect.dart'; 10 import 'package:expect/expect.dart';
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 } 135 }
136 if (initializers != null) { 136 if (initializers != null) {
137 sb.write(',initializers=$initializers'); 137 sb.write(',initializers=$initializers');
138 } 138 }
139 return sb.toString(); 139 return sb.toString();
140 } 140 }
141 } 141 }
142 142
143 class Test { 143 class Test {
144 final String codeByPrefix; 144 final String codeByPrefix;
145 final bool isDeferred;
145 final String code; 146 final String code;
146 final /*Visit | List<Visit>*/ expectedVisits; 147 final /*Visit | List<Visit>*/ expectedVisits;
147 final String cls; 148 final String cls;
148 final String method; 149 final String method;
149 150
150 const Test(this.code, this.expectedVisits) 151 const Test(this.code, this.expectedVisits)
151 : cls = null, method = 'm', codeByPrefix = null; 152 : cls = null, method = 'm', codeByPrefix = null, isDeferred = false;
152 const Test.clazz(this.code, this.expectedVisits, 153 const Test.clazz(this.code, this.expectedVisits,
153 {this.cls: 'C', this.method: 'm'}) 154 {this.cls: 'C', this.method: 'm'})
154 : codeByPrefix = null; 155 : codeByPrefix = null, isDeferred = false;
155 const Test.prefix(this.codeByPrefix, this.code, this.expectedVisits) 156 const Test.prefix(this.codeByPrefix, this.code, this.expectedVisits,
157 {this.isDeferred: false})
156 : cls = null, method = 'm'; 158 : cls = null, method = 'm';
157 159
158 String toString() { 160 String toString() {
159 StringBuffer sb = new StringBuffer(); 161 StringBuffer sb = new StringBuffer();
160 sb.writeln(); 162 sb.writeln();
161 sb.writeln(code); 163 sb.writeln(code);
162 if (codeByPrefix != null) { 164 if (codeByPrefix != null) {
163 sb.writeln('imported by prefix:'); 165 sb.writeln('imported by prefix:');
164 sb.writeln(codeByPrefix); 166 sb.writeln(codeByPrefix);
165 } 167 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 StringBuffer mainSource = new StringBuffer(); 271 StringBuffer mainSource = new StringBuffer();
270 int index = 0; 272 int index = 0;
271 TESTS.forEach((String group, List<Test> tests) { 273 TESTS.forEach((String group, List<Test> tests) {
272 if (arguments.isNotEmpty && !arguments.contains(group)) return; 274 if (arguments.isNotEmpty && !arguments.contains(group)) return;
273 275
274 tests.forEach((Test test) { 276 tests.forEach((Test test) {
275 StringBuffer testSource = new StringBuffer(); 277 StringBuffer testSource = new StringBuffer();
276 if (test.codeByPrefix != null) { 278 if (test.codeByPrefix != null) {
277 String prefixFilename = 'pre$index.dart'; 279 String prefixFilename = 'pre$index.dart';
278 sourceFiles[prefixFilename] = test.codeByPrefix; 280 sourceFiles[prefixFilename] = test.codeByPrefix;
279 testSource.writeln("import '$prefixFilename' as p;"); 281 if (test.isDeferred) {
282 testSource.writeln("import '$prefixFilename' deferred as p;");
283 } else {
284 testSource.writeln("import '$prefixFilename' as p;");
285 }
280 } 286 }
281 287
282 String filename = 'lib$index.dart'; 288 String filename = 'lib$index.dart';
283 testSource.writeln(test.code); 289 testSource.writeln(test.code);
284 sourceFiles[filename] = testSource.toString(); 290 sourceFiles[filename] = testSource.toString();
285 mainSource.writeln("import '$filename';"); 291 mainSource.writeln("import '$filename';");
286 testMap[filename] = test; 292 testMap[filename] = test;
287 index++; 293 index++;
288 }); 294 });
289 }); 295 });
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_COMPOUND, 702 VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_COMPOUND,
697 VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_PREFIX, 703 VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_PREFIX,
698 VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_POSTFIX, 704 VISIT_IF_NOT_NULL_DYNAMIC_PROPERTY_POSTFIX,
699 705
700 ERROR_INVALID_ASSERT, 706 ERROR_INVALID_ASSERT,
701 ERROR_UNDEFINED_UNARY_EXPRESSION, 707 ERROR_UNDEFINED_UNARY_EXPRESSION,
702 ERROR_UNDEFINED_BINARY_EXPRESSION, 708 ERROR_UNDEFINED_BINARY_EXPRESSION,
703 709
704 VISIT_CONSTANT_GET, 710 VISIT_CONSTANT_GET,
705 VISIT_CONSTANT_INVOKE, 711 VISIT_CONSTANT_INVOKE,
712
713 PREVISIT_DEFERRED_ACCESS,
706 } 714 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/proxy_test.dart ('k') | tests/compiler/dart2js/semantic_visitor_test_send_data.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698