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

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

Issue 1584313005: Downplay the distinction between linked and prelinked summaries. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 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 'package:analyzer/src/generated/element.dart'; 7 import 'package:analyzer/src/generated/element.dart';
8 import 'package:analyzer/src/generated/element_handle.dart'; 8 import 'package:analyzer/src/generated/element_handle.dart';
9 import 'package:analyzer/src/generated/engine.dart'; 9 import 'package:analyzer/src/generated/engine.dart';
10 import 'package:analyzer/src/generated/resolver.dart' show Namespace; 10 import 'package:analyzer/src/generated/resolver.dart' show Namespace;
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 assertNoErrors(source); 575 assertNoErrors(source);
576 } 576 }
577 String uri = source.uri.toString(); 577 String uri = source.uri.toString();
578 addLibrary('dart:core'); 578 addLibrary('dart:core');
579 return resynthesizeLibraryElement(uri, original); 579 return resynthesizeLibraryElement(uri, original);
580 } 580 }
581 581
582 LibraryElementImpl resynthesizeLibraryElement( 582 LibraryElementImpl resynthesizeLibraryElement(
583 String uri, LibraryElementImpl original) { 583 String uri, LibraryElementImpl original) {
584 Map<String, UnlinkedUnit> unlinkedSummaries = <String, UnlinkedUnit>{}; 584 Map<String, UnlinkedUnit> unlinkedSummaries = <String, UnlinkedUnit>{};
585 PrelinkedLibrary getPrelinkedSummaryFor(LibraryElement lib) { 585 LinkedLibrary getLinkedSummaryFor(LibraryElement lib) {
586 LibrarySerializationResult serialized = 586 LibrarySerializationResult serialized =
587 serializeLibrary(lib, typeProvider); 587 serializeLibrary(lib, typeProvider);
588 for (int i = 0; i < serialized.unlinkedUnits.length; i++) { 588 for (int i = 0; i < serialized.unlinkedUnits.length; i++) {
589 unlinkedSummaries[serialized.unitUris[i]] = 589 unlinkedSummaries[serialized.unitUris[i]] =
590 new UnlinkedUnit.fromBuffer(serialized.unlinkedUnits[i].toBuffer()); 590 new UnlinkedUnit.fromBuffer(serialized.unlinkedUnits[i].toBuffer());
591 } 591 }
592 return new PrelinkedLibrary.fromBuffer(serialized.prelinked.toBuffer()); 592 return new LinkedLibrary.fromBuffer(serialized.linked.toBuffer());
593 } 593 }
594 Map<String, PrelinkedLibrary> prelinkedSummaries = 594 Map<String, LinkedLibrary> linkedSummaries = <String, LinkedLibrary>{
595 <String, PrelinkedLibrary>{uri: getPrelinkedSummaryFor(original)}; 595 uri: getLinkedSummaryFor(original)
596 };
596 for (Source source in otherLibrarySources) { 597 for (Source source in otherLibrarySources) {
597 LibraryElement original = resolve2(source); 598 LibraryElement original = resolve2(source);
598 String uri = source.uri.toString(); 599 String uri = source.uri.toString();
599 prelinkedSummaries[uri] = getPrelinkedSummaryFor(original); 600 linkedSummaries[uri] = getLinkedSummaryFor(original);
600 } 601 }
601 PrelinkedLibrary getPrelinkedSummary(String uri) { 602 LinkedLibrary getLinkedSummary(String uri) {
602 PrelinkedLibrary serializedLibrary = prelinkedSummaries[uri]; 603 LinkedLibrary serializedLibrary = linkedSummaries[uri];
603 if (serializedLibrary == null) { 604 if (serializedLibrary == null) {
604 fail('Unexpectedly tried to get prelinked summary for $uri'); 605 fail('Unexpectedly tried to get linked summary for $uri');
605 } 606 }
606 return serializedLibrary; 607 return serializedLibrary;
607 } 608 }
608 UnlinkedUnit getUnlinkedSummary(String uri) { 609 UnlinkedUnit getUnlinkedSummary(String uri) {
609 UnlinkedUnit serializedUnit = unlinkedSummaries[uri]; 610 UnlinkedUnit serializedUnit = unlinkedSummaries[uri];
610 if (serializedUnit == null) { 611 if (serializedUnit == null) {
611 fail('Unexpectedly tried to get unlinked summary for $uri'); 612 fail('Unexpectedly tried to get unlinked summary for $uri');
612 } 613 }
613 return serializedUnit; 614 return serializedUnit;
614 } 615 }
615 SummaryResynthesizer resynthesizer = new SummaryResynthesizer( 616 SummaryResynthesizer resynthesizer = new SummaryResynthesizer(
616 analysisContext, 617 analysisContext,
617 analysisContext.typeProvider, 618 analysisContext.typeProvider,
618 getPrelinkedSummary, 619 getLinkedSummary,
619 getUnlinkedSummary, 620 getUnlinkedSummary,
620 analysisContext.sourceFactory); 621 analysisContext.sourceFactory);
621 LibraryElementImpl resynthesized = resynthesizer.getLibraryElement(uri); 622 LibraryElementImpl resynthesized = resynthesizer.getLibraryElement(uri);
622 // Check that no other summaries needed to be resynthesized to resynthesize 623 // Check that no other summaries needed to be resynthesized to resynthesize
623 // the library element. 624 // the library element.
624 expect(resynthesizer.resynthesisCount, 1); 625 expect(resynthesizer.resynthesisCount, 1);
625 return resynthesized; 626 return resynthesized;
626 } 627 }
627 628
628 test_class_alias() { 629 test_class_alias() {
(...skipping 950 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 test_variable_setterInPart_getterInPart() { 1580 test_variable_setterInPart_getterInPart() {
1580 addNamedSource('/a.dart', 'part of my.lib; void set x(int _) {}'); 1581 addNamedSource('/a.dart', 'part of my.lib; void set x(int _) {}');
1581 addNamedSource('/b.dart', 'part of my.lib; int get x => 42;'); 1582 addNamedSource('/b.dart', 'part of my.lib; int get x => 42;');
1582 checkLibrary('library my.lib; part "a.dart"; part "b.dart";'); 1583 checkLibrary('library my.lib; part "a.dart"; part "b.dart";');
1583 } 1584 }
1584 1585
1585 test_variables() { 1586 test_variables() {
1586 checkLibrary('int i; int j;'); 1587 checkLibrary('int i; int j;');
1587 } 1588 }
1588 } 1589 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/summary/summary_sdk.dart ('k') | pkg/analyzer/test/src/summary/summary_sdk_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698