Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 summary_resynthesizer; | 5 library summary_resynthesizer; |
| 6 | 6 |
| 7 import 'package:analyzer/analyzer.dart'; | 7 import 'package:analyzer/analyzer.dart'; |
| 8 import 'package:analyzer/src/generated/element.dart'; | 8 import 'package:analyzer/src/generated/element.dart'; |
| 9 import 'package:analyzer/src/generated/element_handle.dart'; | 9 import 'package:analyzer/src/generated/element_handle.dart'; |
| 10 import 'package:analyzer/src/generated/engine.dart'; | 10 import 'package:analyzer/src/generated/engine.dart'; |
| (...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 707 new NamespaceBuilder().createPublicNamespaceForLibrary(libraryElement); | 707 new NamespaceBuilder().createPublicNamespaceForLibrary(libraryElement); |
| 708 // TODO(paulberry): compute the export namespace from prelinked data, so | 708 // TODO(paulberry): compute the export namespace from prelinked data, so |
| 709 // that exported libraries won't be unnecessarily resynthesized. | 709 // that exported libraries won't be unnecessarily resynthesized. |
| 710 libraryElement.exportNamespace = | 710 libraryElement.exportNamespace = |
| 711 new NamespaceBuilder().createExportNamespaceForLibrary(libraryElement); | 711 new NamespaceBuilder().createExportNamespaceForLibrary(libraryElement); |
| 712 // Find the entry point. | 712 // Find the entry point. |
| 713 libraryElement.entryPoint = | 713 libraryElement.entryPoint = |
| 714 libraryElement.exportNamespace.definedNames.values.firstWhere( | 714 libraryElement.exportNamespace.definedNames.values.firstWhere( |
| 715 (element) => element is FunctionElement && element.isEntryPoint, | 715 (element) => element is FunctionElement && element.isEntryPoint, |
| 716 orElse: () => null); | 716 orElse: () => null); |
| 717 // Create the synthetic element for `loadLibrary`. | |
| 718 if (!isCoreLibrary) { | |
|
Paul Berry
2016/01/13 16:07:49
This seems like a bug. The language spec allows `
scheglov
2016/01/13 16:51:54
Done.
| |
| 719 libraryElement | |
| 720 .createLoadLibraryFunction(summaryResynthesizer.typeProvider); | |
| 721 } | |
| 717 // Done. | 722 // Done. |
| 718 return libraryElement; | 723 return libraryElement; |
| 719 } | 724 } |
| 720 | 725 |
| 721 /** | 726 /** |
| 722 * Resynthesize a [ParameterElement]. | 727 * Resynthesize a [ParameterElement]. |
| 723 */ | 728 */ |
| 724 ParameterElement buildParameter(UnlinkedParam serializedParameter) { | 729 ParameterElement buildParameter(UnlinkedParam serializedParameter) { |
| 725 ParameterElementImpl parameterElement = new ParameterElementImpl( | 730 ParameterElementImpl parameterElement = new ParameterElementImpl( |
| 726 serializedParameter.name, serializedParameter.nameOffset); | 731 serializedParameter.name, serializedParameter.nameOffset); |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 997 } | 1002 } |
| 998 for (FunctionTypeAliasElement typeAlias in unit.functionTypeAliases) { | 1003 for (FunctionTypeAliasElement typeAlias in unit.functionTypeAliases) { |
| 999 elementMap[typeAlias.name] = typeAlias; | 1004 elementMap[typeAlias.name] = typeAlias; |
| 1000 } | 1005 } |
| 1001 resummarizedElements[absoluteUri] = elementMap; | 1006 resummarizedElements[absoluteUri] = elementMap; |
| 1002 unitHolder = null; | 1007 unitHolder = null; |
| 1003 prelinkedUnit = null; | 1008 prelinkedUnit = null; |
| 1004 unlinkedUnit = null; | 1009 unlinkedUnit = null; |
| 1005 } | 1010 } |
| 1006 } | 1011 } |
| OLD | NEW |