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

Side by Side Diff: pkg/front_end/test/src/incremental/kernel_driver_test.dart

Issue 2975253002: Format analyzer, analysis_server, analyzer_plugin, front_end and kernel with the latest dartfmt. (Closed)
Patch Set: Created 3 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) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 'dart:async'; 5 import 'dart:async';
6 6
7 import 'package:front_end/memory_file_system.dart'; 7 import 'package:front_end/memory_file_system.dart';
8 import 'package:front_end/src/base/performace_logger.dart'; 8 import 'package:front_end/src/base/performace_logger.dart';
9 import 'package:front_end/src/fasta/kernel/utils.dart'; 9 import 'package:front_end/src/fasta/kernel/utils.dart';
10 import 'package:front_end/src/fasta/uri_translator_impl.dart'; 10 import 'package:front_end/src/fasta/uri_translator_impl.dart';
(...skipping 26 matching lines...) Expand all
37 void setUp() { 37 void setUp() {
38 _createDriver(); 38 _createDriver();
39 } 39 }
40 40
41 test_compile_chain() async { 41 test_compile_chain() async {
42 writeFile('/test/.packages', 'test:lib/'); 42 writeFile('/test/.packages', 'test:lib/');
43 String aPath = '/test/lib/a.dart'; 43 String aPath = '/test/lib/a.dart';
44 String bPath = '/test/lib/b.dart'; 44 String bPath = '/test/lib/b.dart';
45 String cPath = '/test/lib/c.dart'; 45 String cPath = '/test/lib/c.dart';
46 Uri aUri = writeFile(aPath, 'var a = 1;'); 46 Uri aUri = writeFile(aPath, 'var a = 1;');
47 Uri bUri = writeFile( 47 Uri bUri = writeFile(bPath, r'''
48 bPath,
49 r'''
50 import 'a.dart'; 48 import 'a.dart';
51 var b = a; 49 var b = a;
52 '''); 50 ''');
53 Uri cUri = writeFile( 51 Uri cUri = writeFile(cPath, r'''
54 cPath,
55 r'''
56 import 'a.dart'; 52 import 'a.dart';
57 import 'b.dart'; 53 import 'b.dart';
58 var c1 = a; 54 var c1 = a;
59 var c2 = b; 55 var c2 = b;
60 void main() {} 56 void main() {}
61 '''); 57 ''');
62 58
63 { 59 {
64 KernelResult result = await driver.getKernel(cUri); 60 KernelResult result = await driver.getKernel(cUri);
65 _assertLibraryUris(result, 61 _assertLibraryUris(result,
66 includes: [aUri, bUri, cUri, Uri.parse('dart:core')]); 62 includes: [aUri, bUri, cUri, Uri.parse('dart:core')]);
67 Library library = _getLibrary(result, cUri); 63 Library library = _getLibrary(result, cUri);
68 expect( 64 expect(_getLibraryText(library), r'''
69 _getLibraryText(library),
70 r'''
71 library; 65 library;
72 import self as self; 66 import self as self;
73 import "dart:core" as core; 67 import "dart:core" as core;
74 import "./a.dart" as a; 68 import "./a.dart" as a;
75 import "./b.dart" as b; 69 import "./b.dart" as b;
76 70
77 static field core::int c1 = a::a; 71 static field core::int c1 = a::a;
78 static field core::int c2 = b::b; 72 static field core::int c2 = b::b;
79 static method main() → void {} 73 static method main() → void {}
80 '''); 74 ''');
81 } 75 }
82 76
83 // Update b.dart and recompile c.dart 77 // Update b.dart and recompile c.dart
84 writeFile( 78 writeFile(bPath, r'''
85 bPath,
86 r'''
87 import 'a.dart'; 79 import 'a.dart';
88 var b = 1.2; 80 var b = 1.2;
89 '''); 81 ''');
90 driver.invalidate(bUri); 82 driver.invalidate(bUri);
91 { 83 {
92 KernelResult result = await driver.getKernel(cUri); 84 KernelResult result = await driver.getKernel(cUri);
93 _assertLibraryUris(result, 85 _assertLibraryUris(result,
94 includes: [aUri, bUri, cUri, Uri.parse('dart:core')]); 86 includes: [aUri, bUri, cUri, Uri.parse('dart:core')]);
95 Library library = _getLibrary(result, cUri); 87 Library library = _getLibrary(result, cUri);
96 expect( 88 expect(_getLibraryText(library), r'''
97 _getLibraryText(library),
98 r'''
99 library; 89 library;
100 import self as self; 90 import self as self;
101 import "dart:core" as core; 91 import "dart:core" as core;
102 import "./a.dart" as a; 92 import "./a.dart" as a;
103 import "./b.dart" as b; 93 import "./b.dart" as b;
104 94
105 static field core::int c1 = a::a; 95 static field core::int c1 = a::a;
106 static field core::double c2 = b::b; 96 static field core::double c2 = b::b;
107 static method main() → void {} 97 static method main() → void {}
108 '''); 98 ''');
109 } 99 }
110 } 100 }
111 101
112 test_compile_export() async { 102 test_compile_export() async {
113 writeFile('/test/.packages', 'test:lib/'); 103 writeFile('/test/.packages', 'test:lib/');
114 String aPath = '/test/lib/a.dart'; 104 String aPath = '/test/lib/a.dart';
115 String bPath = '/test/lib/b.dart'; 105 String bPath = '/test/lib/b.dart';
116 String cPath = '/test/lib/c.dart'; 106 String cPath = '/test/lib/c.dart';
117 writeFile(aPath, 'class A {}'); 107 writeFile(aPath, 'class A {}');
118 writeFile(bPath, 'export "a.dart";'); 108 writeFile(bPath, 'export "a.dart";');
119 Uri cUri = writeFile( 109 Uri cUri = writeFile(cPath, r'''
120 cPath,
121 r'''
122 import 'b.dart'; 110 import 'b.dart';
123 A a; 111 A a;
124 '''); 112 ''');
125 113
126 KernelResult result = await driver.getKernel(cUri); 114 KernelResult result = await driver.getKernel(cUri);
127 Library library = _getLibrary(result, cUri); 115 Library library = _getLibrary(result, cUri);
128 expect( 116 expect(_getLibraryText(library), r'''
129 _getLibraryText(library),
130 r'''
131 library; 117 library;
132 import self as self; 118 import self as self;
133 import "./a.dart" as a; 119 import "./a.dart" as a;
134 120
135 static field a::A a; 121 static field a::A a;
136 '''); 122 ''');
137 } 123 }
138 124
139 test_compile_export_cycle() async { 125 test_compile_export_cycle() async {
140 writeFile('/test/.packages', 'test:lib/'); 126 writeFile('/test/.packages', 'test:lib/');
141 String aPath = '/test/lib/a.dart'; 127 String aPath = '/test/lib/a.dart';
142 String bPath = '/test/lib/b.dart'; 128 String bPath = '/test/lib/b.dart';
143 String cPath = '/test/lib/c.dart'; 129 String cPath = '/test/lib/c.dart';
144 writeFile(aPath, 'export "b.dart"; class A {}'); 130 writeFile(aPath, 'export "b.dart"; class A {}');
145 writeFile(bPath, 'export "a.dart"; class B {}'); 131 writeFile(bPath, 'export "a.dart"; class B {}');
146 Uri cUri = writeFile( 132 Uri cUri = writeFile(cPath, r'''
147 cPath,
148 r'''
149 import 'b.dart'; 133 import 'b.dart';
150 A a; 134 A a;
151 B b; 135 B b;
152 '''); 136 ''');
153 137
154 { 138 {
155 KernelResult result = await driver.getKernel(cUri); 139 KernelResult result = await driver.getKernel(cUri);
156 Library library = _getLibrary(result, cUri); 140 Library library = _getLibrary(result, cUri);
157 expect( 141 expect(_getLibraryText(library), r'''
158 _getLibraryText(library),
159 r'''
160 library; 142 library;
161 import self as self; 143 import self as self;
162 import "./a.dart" as a; 144 import "./a.dart" as a;
163 import "./b.dart" as b; 145 import "./b.dart" as b;
164 146
165 static field a::A a; 147 static field a::A a;
166 static field b::B b; 148 static field b::B b;
167 '''); 149 ''');
168 } 150 }
169 151
170 // Update c.dart and compile. 152 // Update c.dart and compile.
171 // We should load the cycle [a.dart, b.dart] from the byte store. 153 // We should load the cycle [a.dart, b.dart] from the byte store.
172 // This tests that we compute export scopes after loading. 154 // This tests that we compute export scopes after loading.
173 writeFile( 155 writeFile(cPath, r'''
174 cPath,
175 r'''
176 import 'b.dart'; 156 import 'b.dart';
177 A a; 157 A a;
178 B b; 158 B b;
179 int c; 159 int c;
180 '''); 160 ''');
181 driver.invalidate(cUri); 161 driver.invalidate(cUri);
182 { 162 {
183 KernelResult result = await driver.getKernel(cUri); 163 KernelResult result = await driver.getKernel(cUri);
184 Library library = _getLibrary(result, cUri); 164 Library library = _getLibrary(result, cUri);
185 expect( 165 expect(_getLibraryText(library), r'''
186 _getLibraryText(library),
187 r'''
188 library; 166 library;
189 import self as self; 167 import self as self;
190 import "./a.dart" as a; 168 import "./a.dart" as a;
191 import "./b.dart" as b; 169 import "./b.dart" as b;
192 import "dart:core" as core; 170 import "dart:core" as core;
193 171
194 static field a::A a; 172 static field a::A a;
195 static field b::B b; 173 static field b::B b;
196 static field core::int c; 174 static field core::int c;
197 '''); 175 ''');
198 } 176 }
199 } 177 }
200 178
201 test_compile_export_hideWithLocal() async { 179 test_compile_export_hideWithLocal() async {
202 writeFile('/test/.packages', 'test:lib/'); 180 writeFile('/test/.packages', 'test:lib/');
203 String aPath = '/test/lib/a.dart'; 181 String aPath = '/test/lib/a.dart';
204 String bPath = '/test/lib/b.dart'; 182 String bPath = '/test/lib/b.dart';
205 String cPath = '/test/lib/c.dart'; 183 String cPath = '/test/lib/c.dart';
206 writeFile(aPath, 'class A {} class B {}'); 184 writeFile(aPath, 'class A {} class B {}');
207 writeFile(bPath, 'export "a.dart"; class B {}'); 185 writeFile(bPath, 'export "a.dart"; class B {}');
208 Uri cUri = writeFile( 186 Uri cUri = writeFile(cPath, r'''
209 cPath,
210 r'''
211 import 'b.dart'; 187 import 'b.dart';
212 A a; 188 A a;
213 B b; 189 B b;
214 '''); 190 ''');
215 191
216 KernelResult result = await driver.getKernel(cUri); 192 KernelResult result = await driver.getKernel(cUri);
217 Library library = _getLibrary(result, cUri); 193 Library library = _getLibrary(result, cUri);
218 expect( 194 expect(_getLibraryText(library), r'''
219 _getLibraryText(library),
220 r'''
221 library; 195 library;
222 import self as self; 196 import self as self;
223 import "./a.dart" as a; 197 import "./a.dart" as a;
224 import "./b.dart" as b; 198 import "./b.dart" as b;
225 199
226 static field a::A a; 200 static field a::A a;
227 static field b::B b; 201 static field b::B b;
228 '''); 202 ''');
229 } 203 }
230 204
231 test_compile_recompileMixin() async { 205 test_compile_recompileMixin() async {
232 writeFile('/test/.packages', 'test:lib/'); 206 writeFile('/test/.packages', 'test:lib/');
233 String aPath = '/test/lib/a.dart'; 207 String aPath = '/test/lib/a.dart';
234 String bPath = '/test/lib/b.dart'; 208 String bPath = '/test/lib/b.dart';
235 String cPath = '/test/lib/c.dart'; 209 String cPath = '/test/lib/c.dart';
236 210
237 Uri aUri = writeFile( 211 Uri aUri = writeFile(aPath, r'''
238 aPath,
239 r'''
240 import 'b.dart'; 212 import 'b.dart';
241 main() { 213 main() {
242 new B().foo(); 214 new B().foo();
243 } 215 }
244 '''); 216 ''');
245 Uri bUri = writeFile( 217 Uri bUri = writeFile(bPath, r'''
246 bPath,
247 r'''
248 import 'c.dart'; 218 import 'c.dart';
249 class B extends Object with C {} 219 class B extends Object with C {}
250 '''); 220 ''');
251 Uri cUri = writeFile( 221 Uri cUri = writeFile(cPath, r'''
252 cPath,
253 r'''
254 class C { 222 class C {
255 void foo() { 223 void foo() {
256 print(0); 224 print(0);
257 } 225 }
258 } 226 }
259 '''); 227 ''');
260 228
261 { 229 {
262 KernelResult result = await driver.getKernel(aUri); 230 KernelResult result = await driver.getKernel(aUri);
263 _assertLibraryUris(result, 231 _assertLibraryUris(result,
264 includes: [aUri, bUri, cUri, Uri.parse('dart:core')]); 232 includes: [aUri, bUri, cUri, Uri.parse('dart:core')]);
265 } 233 }
266 234
267 // Update c.dart and compute the delta. 235 // Update c.dart and compute the delta.
268 // Includes: c.dart, b.dart and a.dart files. 236 // Includes: c.dart, b.dart and a.dart files.
269 // Compiled: c.dart (changed) and b.dart (has mixin), but not a.dart file. 237 // Compiled: c.dart (changed) and b.dart (has mixin), but not a.dart file.
270 writeFile( 238 writeFile(cPath, r'''
271 cPath,
272 r'''
273 class C { 239 class C {
274 void foo() { 240 void foo() {
275 print(1); 241 print(1);
276 } 242 }
277 } 243 }
278 '''); 244 ''');
279 driver.invalidate(cUri); 245 driver.invalidate(cUri);
280 { 246 {
281 KernelResult result = await driver.getKernel(aUri); 247 KernelResult result = await driver.getKernel(aUri);
282 _assertLibraryUris(result, 248 _assertLibraryUris(result,
283 includes: [aUri, bUri, cUri, Uri.parse('dart:core')]); 249 includes: [aUri, bUri, cUri, Uri.parse('dart:core')]);
284 // Compiled: c.dart (changed), and b.dart (has mixin). 250 // Compiled: c.dart (changed), and b.dart (has mixin).
285 _assertCompiledUris([cUri, bUri]); 251 _assertCompiledUris([cUri, bUri]);
286 } 252 }
287 } 253 }
288 254
289 test_compile_typedef() async { 255 test_compile_typedef() async {
290 writeFile('/test/.packages', 'test:lib/'); 256 writeFile('/test/.packages', 'test:lib/');
291 String aPath = '/test/lib/a.dart'; 257 String aPath = '/test/lib/a.dart';
292 String bPath = '/test/lib/b.dart'; 258 String bPath = '/test/lib/b.dart';
293 writeFile(aPath, 'typedef int F<T>(T x);'); 259 writeFile(aPath, 'typedef int F<T>(T x);');
294 Uri bUri = writeFile( 260 Uri bUri = writeFile(bPath, r'''
295 bPath,
296 r'''
297 import 'a.dart'; 261 import 'a.dart';
298 F<String> f; 262 F<String> f;
299 '''); 263 ''');
300 264
301 KernelResult result = await driver.getKernel(bUri); 265 KernelResult result = await driver.getKernel(bUri);
302 Library library = _getLibrary(result, bUri); 266 Library library = _getLibrary(result, bUri);
303 expect( 267 expect(_getLibraryText(library), r'''
304 _getLibraryText(library),
305 r'''
306 library; 268 library;
307 import self as self; 269 import self as self;
308 import "dart:core" as core; 270 import "dart:core" as core;
309 271
310 static field (core::String) → core::int f; 272 static field (core::String) → core::int f;
311 '''); 273 ''');
312 } 274 }
313 275
314 test_limited_ast_to_binary() async { 276 test_limited_ast_to_binary() async {
315 writeFile('/test/.packages', 'test:lib/'); 277 writeFile('/test/.packages', 'test:lib/');
316 String aPath = '/test/lib/a.dart'; 278 String aPath = '/test/lib/a.dart';
317 String bPath = '/test/lib/b.dart'; 279 String bPath = '/test/lib/b.dart';
318 writeFile( 280 writeFile(aPath, r'''
319 aPath,
320 r'''
321 int topField = 0; 281 int topField = 0;
322 int get topGetter => 0; 282 int get topGetter => 0;
323 int topFunction({p}) => 0; 283 int topFunction({p}) => 0;
324 284
325 abstract class I { 285 abstract class I {
326 int interfaceField; 286 int interfaceField;
327 int get interfaceGetter; 287 int get interfaceGetter;
328 int interfaceMethod(); 288 int interfaceMethod();
329 } 289 }
330 290
331 class A implements I { 291 class A implements I {
332 static int staticField; 292 static int staticField;
333 static int get staticGetter => 0; 293 static int get staticGetter => 0;
334 static int staticMethod() => 0; 294 static int staticMethod() => 0;
335 295
336 int instanceField; 296 int instanceField;
337 int get instanceGetter => 0; 297 int get instanceGetter => 0;
338 int instanceMethod() => 0; 298 int instanceMethod() => 0;
339 299
340 int interfaceField; 300 int interfaceField;
341 int get interfaceGetter => 0; 301 int get interfaceGetter => 0;
342 int interfaceMethod() => 0; 302 int interfaceMethod() => 0;
343 303
344 A(); 304 A();
345 A.named(); 305 A.named();
346 } 306 }
347 '''); 307 ''');
348 Uri bUri = writeFile( 308 Uri bUri = writeFile(bPath, r'''
349 bPath,
350 r'''
351 import 'a.dart'; 309 import 'a.dart';
352 310
353 class B extends A { 311 class B extends A {
354 B() : super(); 312 B() : super();
355 B.named() : super.named(); 313 B.named() : super.named();
356 314
357 void foo() { 315 void foo() {
358 super.instanceMethod(); 316 super.instanceMethod();
359 instanceMethod(); 317 instanceMethod();
360 318
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 .firstWhere((procedure) => procedure.name.name == 'main'); 392 .firstWhere((procedure) => procedure.name.name == 'main');
435 393
436 expect(_getLibraryText(loadedLibrary), initialKernelText); 394 expect(_getLibraryText(loadedLibrary), initialKernelText);
437 verifyProgram(program); 395 verifyProgram(program);
438 } 396 }
439 397
440 test_updatePackageSourceUsingFileUri() async { 398 test_updatePackageSourceUsingFileUri() async {
441 _createDriver(packages: {'test': _folderUri('/test/lib')}); 399 _createDriver(packages: {'test': _folderUri('/test/lib')});
442 400
443 writeFile('/test/.packages', 'test:lib/'); 401 writeFile('/test/.packages', 'test:lib/');
444 Uri aFileUri = writeFile( 402 Uri aFileUri = writeFile('/test/bin/a.dart', r'''
445 '/test/bin/a.dart',
446 r'''
447 import 'package:test/b.dart'; 403 import 'package:test/b.dart';
448 var a = b; 404 var a = b;
449 '''); 405 ''');
450 Uri bFileUri = writeFile('/test/lib/b.dart', 'var b = 1;'); 406 Uri bFileUri = writeFile('/test/lib/b.dart', 'var b = 1;');
451 Uri bPackageUri = Uri.parse('package:test/b.dart'); 407 Uri bPackageUri = Uri.parse('package:test/b.dart');
452 408
453 // Compute the initial state. 409 // Compute the initial state.
454 { 410 {
455 KernelResult result = await driver.getKernel(aFileUri); 411 KernelResult result = await driver.getKernel(aFileUri);
456 Library library = _getLibrary(result, aFileUri); 412 Library library = _getLibrary(result, aFileUri);
457 expect( 413 expect(_getLibraryText(library), r'''
458 _getLibraryText(library),
459 r'''
460 library; 414 library;
461 import self as self; 415 import self as self;
462 import "dart:core" as core; 416 import "dart:core" as core;
463 import "package:test/b.dart" as b; 417 import "package:test/b.dart" as b;
464 418
465 static field core::int a = b::b; 419 static field core::int a = b::b;
466 '''); 420 ''');
467 } 421 }
468 422
469 // Update b.dart and use file URI to invalidate it. 423 // Update b.dart and use file URI to invalidate it.
470 // The delta is recomputed even though b.dart is used with the package URI. 424 // The delta is recomputed even though b.dart is used with the package URI.
471 writeFile('/test/lib/b.dart', 'var b = 1.2;'); 425 writeFile('/test/lib/b.dart', 'var b = 1.2;');
472 driver.invalidate(bFileUri); 426 driver.invalidate(bFileUri);
473 { 427 {
474 KernelResult result = await driver.getKernel(aFileUri); 428 KernelResult result = await driver.getKernel(aFileUri);
475 _assertLibraryUris(result, includes: [aFileUri, bPackageUri]); 429 _assertLibraryUris(result, includes: [aFileUri, bPackageUri]);
476 Library library = _getLibrary(result, aFileUri); 430 Library library = _getLibrary(result, aFileUri);
477 expect( 431 expect(_getLibraryText(library), r'''
478 _getLibraryText(library),
479 r'''
480 library; 432 library;
481 import self as self; 433 import self as self;
482 import "dart:core" as core; 434 import "dart:core" as core;
483 import "package:test/b.dart" as b; 435 import "package:test/b.dart" as b;
484 436
485 static field core::double a = b::b; 437 static field core::double a = b::b;
486 '''); 438 ''');
487 } 439 }
488 } 440 }
489 441
490 test_updatePart() async { 442 test_updatePart() async {
491 writeFile('/test/.packages', 'test:lib/'); 443 writeFile('/test/.packages', 'test:lib/');
492 String libPath = '/test/lib/test.dart'; 444 String libPath = '/test/lib/test.dart';
493 String partPath = '/test/lib/bar.dart'; 445 String partPath = '/test/lib/bar.dart';
494 Uri libUri = writeFile( 446 Uri libUri = writeFile(libPath, r'''
495 libPath,
496 r'''
497 library foo; 447 library foo;
498 part 'bar.dart'; 448 part 'bar.dart';
499 var a = 1; 449 var a = 1;
500 var c = b; 450 var c = b;
501 void main() {} 451 void main() {}
502 '''); 452 ''');
503 Uri partUri = writeFile( 453 Uri partUri = writeFile(partPath, r'''
504 partPath,
505 r'''
506 part of foo; 454 part of foo;
507 var b = 2; 455 var b = 2;
508 var d = a; 456 var d = a;
509 '''); 457 ''');
510 458
511 // Check the initial state - types flow between the part and the library. 459 // Check the initial state - types flow between the part and the library.
512 KernelResult result = await driver.getKernel(libUri); 460 KernelResult result = await driver.getKernel(libUri);
513 Library library = _getLibrary(result, libUri); 461 Library library = _getLibrary(result, libUri);
514 expect( 462 expect(_getLibraryText(library), r'''
515 _getLibraryText(library),
516 r'''
517 library foo; 463 library foo;
518 import self as self; 464 import self as self;
519 import "dart:core" as core; 465 import "dart:core" as core;
520 466
521 static field core::int a = 1; 467 static field core::int a = 1;
522 static field core::int c = self::b; 468 static field core::int c = self::b;
523 static field core::int b = 2 /* from file:///test/lib/bar.dart */; 469 static field core::int b = 2 /* from file:///test/lib/bar.dart */;
524 static field core::int d = self::a /* from file:///test/lib/bar.dart */; 470 static field core::int d = self::a /* from file:///test/lib/bar.dart */;
525 static method main() → void {} 471 static method main() → void {}
526 '''); 472 ''');
527 473
528 // Update [b] in the part, the type is changed in the part and library. 474 // Update [b] in the part, the type is changed in the part and library.
529 { 475 {
530 writeFile( 476 writeFile(partPath, r'''
531 partPath,
532 r'''
533 part of foo; 477 part of foo;
534 var b = 2.3; 478 var b = 2.3;
535 var d = a; 479 var d = a;
536 '''); 480 ''');
537 driver.invalidate(partUri); 481 driver.invalidate(partUri);
538 KernelResult result = await driver.getKernel(libUri); 482 KernelResult result = await driver.getKernel(libUri);
539 Library library = _getLibrary(result, libUri); 483 Library library = _getLibrary(result, libUri);
540 expect( 484 expect(_getLibraryText(library), r'''
541 _getLibraryText(library),
542 r'''
543 library foo; 485 library foo;
544 import self as self; 486 import self as self;
545 import "dart:core" as core; 487 import "dart:core" as core;
546 488
547 static field core::int a = 1; 489 static field core::int a = 1;
548 static field core::double c = self::b; 490 static field core::double c = self::b;
549 static field core::double b = 2.3 /* from file:///test/lib/bar.dart */; 491 static field core::double b = 2.3 /* from file:///test/lib/bar.dart */;
550 static field core::int d = self::a /* from file:///test/lib/bar.dart */; 492 static field core::int d = self::a /* from file:///test/lib/bar.dart */;
551 static method main() → void {} 493 static method main() → void {}
552 '''); 494 ''');
553 } 495 }
554 496
555 // Update [a] in the library, the type is changed in the part and library. 497 // Update [a] in the library, the type is changed in the part and library.
556 { 498 {
557 writeFile( 499 writeFile(libPath, r'''
558 libPath,
559 r'''
560 library foo; 500 library foo;
561 part 'bar.dart'; 501 part 'bar.dart';
562 var a = 'aaa'; 502 var a = 'aaa';
563 var c = b; 503 var c = b;
564 void main() {} 504 void main() {}
565 '''); 505 ''');
566 driver.invalidate(libUri); 506 driver.invalidate(libUri);
567 KernelResult result = await driver.getKernel(libUri); 507 KernelResult result = await driver.getKernel(libUri);
568 Library library = _getLibrary(result, libUri); 508 Library library = _getLibrary(result, libUri);
569 expect( 509 expect(_getLibraryText(library), r'''
570 _getLibraryText(library),
571 r'''
572 library foo; 510 library foo;
573 import self as self; 511 import self as self;
574 import "dart:core" as core; 512 import "dart:core" as core;
575 513
576 static field core::String a = "aaa"; 514 static field core::String a = "aaa";
577 static field core::double c = self::b; 515 static field core::double c = self::b;
578 static field core::double b = 2.3 /* from file:///test/lib/bar.dart */; 516 static field core::double b = 2.3 /* from file:///test/lib/bar.dart */;
579 static field core::String d = self::a /* from file:///test/lib/bar.dart */; 517 static field core::String d = self::a /* from file:///test/lib/bar.dart */;
580 static method main() → void {} 518 static method main() → void {}
581 '''); 519 ''');
582 } 520 }
583 } 521 }
584 522
585 test_watch() async { 523 test_watch() async {
586 writeFile('/test/.packages', 'test:lib/'); 524 writeFile('/test/.packages', 'test:lib/');
587 String aPath = '/test/lib/a.dart'; 525 String aPath = '/test/lib/a.dart';
588 String bPath = '/test/lib/b.dart'; 526 String bPath = '/test/lib/b.dart';
589 String cPath = '/test/lib/c.dart'; 527 String cPath = '/test/lib/c.dart';
590 Uri aUri = writeFile(aPath, ''); 528 Uri aUri = writeFile(aPath, '');
591 Uri bUri = writeFile(bPath, ''); 529 Uri bUri = writeFile(bPath, '');
592 Uri cUri = writeFile( 530 Uri cUri = writeFile(cPath, r'''
593 cPath,
594 r'''
595 import 'a.dart'; 531 import 'a.dart';
596 '''); 532 ''');
597 533
598 var usedFiles = <Uri>[]; 534 var usedFiles = <Uri>[];
599 _createDriver(fileAddedFn: (Uri uri) { 535 _createDriver(fileAddedFn: (Uri uri) {
600 usedFiles.add(uri); 536 usedFiles.add(uri);
601 return new Future.value(); 537 return new Future.value();
602 }); 538 });
603 539
604 { 540 {
605 await driver.getKernel(cUri); 541 await driver.getKernel(cUri);
606 // We use at least c.dart and a.dart now. 542 // We use at least c.dart and a.dart now.
607 expect(usedFiles, contains(cUri)); 543 expect(usedFiles, contains(cUri));
608 expect(usedFiles, contains(aUri)); 544 expect(usedFiles, contains(aUri));
609 usedFiles.clear(); 545 usedFiles.clear();
610 } 546 }
611 547
612 // Update c.dart to reference also b.dart file. 548 // Update c.dart to reference also b.dart file.
613 writeFile( 549 writeFile(cPath, r'''
614 cPath,
615 r'''
616 import 'a.dart'; 550 import 'a.dart';
617 import 'b.dart'; 551 import 'b.dart';
618 '''); 552 ''');
619 driver.invalidate(cUri); 553 driver.invalidate(cUri);
620 { 554 {
621 await driver.getKernel(cUri); 555 await driver.getKernel(cUri);
622 // The only new file is b.dart now. 556 // The only new file is b.dart now.
623 expect(usedFiles, [bUri]); 557 expect(usedFiles, [bUri]);
624 usedFiles.clear(); 558 usedFiles.clear();
625 } 559 }
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 .writeLibraryFile(library); 633 .writeLibraryFile(library);
700 return buffer.toString(); 634 return buffer.toString();
701 } 635 }
702 636
703 /// Return the [Uri] for the given Posix [path]. 637 /// Return the [Uri] for the given Posix [path].
704 static Uri _folderUri(String path) { 638 static Uri _folderUri(String path) {
705 if (!path.endsWith('/')) path += '/'; 639 if (!path.endsWith('/')) path += '/';
706 return Uri.parse('file://$path'); 640 return Uri.parse('file://$path');
707 } 641 }
708 } 642 }
OLDNEW
« no previous file with comments | « pkg/front_end/test/src/incremental/file_state_test.dart ('k') | pkg/front_end/test/src/incremental/mock_sdk.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698