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

Side by Side Diff: pkg/analyzer/test/src/summary/resynthesize_common.dart

Issue 2982373002: Resynthesize mixins from Kernel. (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) 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 test.src.serialization.elements_test; 5 library test.src.serialization.elements_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; 10 import 'package:analyzer/dart/ast/standard_resolution_map.dart';
(...skipping 1354 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 } else { 1365 } else {
1366 checkElementText(library, r''' 1366 checkElementText(library, r'''
1367 abstract class C { 1367 abstract class C {
1368 } 1368 }
1369 '''); 1369 ''');
1370 } 1370 }
1371 } 1371 }
1372 1372
1373 test_class_alias() async { 1373 test_class_alias() async {
1374 var library = await checkLibrary(''' 1374 var library = await checkLibrary('''
1375 class C = D with E, F; 1375 class C = D with E, F, G;
1376 class D {} 1376 class D {}
1377 class E {} 1377 class E {}
1378 class F {} 1378 class F {}
1379 class G {}
1379 '''); 1380 ''');
1380 if (isStrongMode) { 1381 checkElementText(library, r'''
1381 checkElementText(library, r''' 1382 class alias C extends D with E, F, G {
1382 class alias C extends D with E, F {
1383 synthetic C() = D; 1383 synthetic C() = D;
1384 } 1384 }
1385 class D { 1385 class D {
1386 } 1386 }
1387 class E { 1387 class E {
1388 } 1388 }
1389 class F { 1389 class F {
1390 } 1390 }
1391 '''); 1391 class G {
1392 } else {
1393 checkElementText(library, r'''
1394 class alias C extends D with E, F {
1395 synthetic C() = D;
1396 }
1397 class D {
1398 }
1399 class E {
1400 }
1401 class F {
1402 } 1392 }
1403 '''); 1393 ''');
1404 }
1405 } 1394 }
1406 1395
1407 test_class_alias_abstract() async { 1396 test_class_alias_abstract() async {
1408 var library = await checkLibrary(''' 1397 var library = await checkLibrary('''
1409 abstract class C = D with E; 1398 abstract class C = D with E;
1410 class D {} 1399 class D {}
1411 class E {} 1400 class E {}
1412 '''); 1401 ''');
1413 if (isStrongMode) { 1402 if (isStrongMode) {
1414 checkElementText(library, r''' 1403 checkElementText(library, r'''
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1465 synthetic C() = D; 1454 synthetic C() = D;
1466 } 1455 }
1467 class D { 1456 class D {
1468 } 1457 }
1469 class E { 1458 class E {
1470 } 1459 }
1471 '''); 1460 ''');
1472 } 1461 }
1473 } 1462 }
1474 1463
1464 test_class_alias_generic() async {
1465 var library = await checkLibrary('''
1466 class Z = A with B<int>, C<double>;
1467 class A {}
1468 class B<B1> {}
1469 class C<C1> {}
1470 ''');
1471 checkElementText(library, r'''
1472 class alias Z extends A with B<int>, C<double> {
1473 synthetic Z() = A;
1474 }
1475 class A {
1476 }
1477 class B<B1> {
1478 }
1479 class C<C1> {
1480 }
1481 ''');
1482 }
1483
1475 test_class_alias_with_forwarding_constructors() async { 1484 test_class_alias_with_forwarding_constructors() async {
1476 addLibrarySource('/a.dart', ''' 1485 addLibrarySource('/a.dart', '''
1477 class Base { 1486 class Base {
1478 Base._priv(); 1487 Base._priv();
1479 Base(); 1488 Base();
1480 Base.noArgs(); 1489 Base.noArgs();
1481 Base.requiredArg(x); 1490 Base.requiredArg(x);
1482 Base.positionalArg([x]); 1491 Base.positionalArg([x]);
1483 Base.namedArg({x}); 1492 Base.namedArg({x});
1484 factory Base.fact() => null; 1493 factory Base.fact() => null;
(...skipping 1071 matching lines...) Expand 10 before | Expand all | Expand 10 after
2556 checkElementText(library, r''' 2565 checkElementText(library, r'''
2557 class C { 2566 class C {
2558 dynamic f() {} 2567 dynamic f() {}
2559 dynamic g() {} 2568 dynamic g() {}
2560 } 2569 }
2561 '''); 2570 ''');
2562 } 2571 }
2563 } 2572 }
2564 2573
2565 test_class_mixins() async { 2574 test_class_mixins() async {
2566 var library = await checkLibrary( 2575 var library = await checkLibrary('''
2567 'class C extends Object with D, E {} class D {} class E {}'); 2576 class C extends D with E, F, G {}
2568 if (isStrongMode) { 2577 class D {}
2569 checkElementText(library, r''' 2578 class E {}
2570 class C extends Object with D, E { 2579 class F {}
2580 class G {}
2581 ''');
2582 checkElementText(library, r'''
2583 class C extends D with E, F, G {
2571 synthetic C(); 2584 synthetic C();
2572 } 2585 }
2573 class D { 2586 class D {
2574 } 2587 }
2575 class E { 2588 class E {
2576 } 2589 }
2577 '''); 2590 class F {
2578 } else {
2579 checkElementText(library, r'''
2580 class C extends Object with D, E {
2581 synthetic C();
2582 } 2591 }
2583 class D { 2592 class G {
2584 }
2585 class E {
2586 } 2593 }
2587 '''); 2594 ''');
2588 } 2595 }
2596
2597 test_class_mixins_generic() async {
2598 var library = await checkLibrary('''
2599 class Z extends A with B<int>, C<double> {}
2600 class A {}
2601 class B<B1> {}
2602 class C<C1> {}
2603 ''');
2604 checkElementText(library, r'''
2605 class Z extends A with B<int>, C<double> {
2606 synthetic Z();
2607 }
2608 class A {
2609 }
2610 class B<B1> {
2611 }
2612 class C<C1> {
2613 }
2614 ''');
2589 } 2615 }
2590 2616
2591 test_class_mixins_unresolved() async { 2617 test_class_mixins_unresolved() async {
2592 var library = await checkLibrary( 2618 var library = await checkLibrary(
2593 'class C extends Object with X, Y, Z; class X {} class Z {}', 2619 'class C extends Object with X, Y, Z; class X {} class Z {}',
2594 allowErrors: true); 2620 allowErrors: true);
2595 if (isStrongMode) { 2621 if (isStrongMode) {
2596 checkElementText(library, r''' 2622 checkElementText(library, r'''
2597 class C extends Object with X, Z { 2623 class C extends Object with X, Z {
2598 synthetic C(); 2624 synthetic C();
(...skipping 10571 matching lines...) Expand 10 before | Expand all | Expand 10 after
13170 fail('Unexpectedly tried to get unlinked summary for $uri'); 13196 fail('Unexpectedly tried to get unlinked summary for $uri');
13171 } 13197 }
13172 return serializedUnit; 13198 return serializedUnit;
13173 } 13199 }
13174 13200
13175 @override 13201 @override
13176 bool hasLibrarySummary(String uri) { 13202 bool hasLibrarySummary(String uri) {
13177 return true; 13203 return true;
13178 } 13204 }
13179 } 13205 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698