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

Side by Side Diff: pkg/analyzer/lib/src/summary/link.dart

Issue 2531333006: Avoid a crash during summary linking when there are inheritance errors. (Closed)
Patch Set: Created 4 years 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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 /** 5 /**
6 * This library is capable of producing linked summaries from unlinked 6 * This library is capable of producing linked summaries from unlinked
7 * ones (or prelinked ones). It functions by building a miniature 7 * ones (or prelinked ones). It functions by building a miniature
8 * element model to represent the contents of the summaries, and then 8 * element model to represent the contents of the summaries, and then
9 * scanning the element model to gather linked information and adding 9 * scanning the element model to gather linked information and adding
10 * it to the summary data structures. 10 * it to the summary data structures.
(...skipping 3511 matching lines...) Expand 10 before | Expand all | Expand 10 after
3522 3522
3523 LibraryElementInBuildUnit(Linker linker, Uri absoluteUri, this._linkedLibrary) 3523 LibraryElementInBuildUnit(Linker linker, Uri absoluteUri, this._linkedLibrary)
3524 : super(linker, absoluteUri) { 3524 : super(linker, absoluteUri) {
3525 _libraryNode = new LibraryNode(this); 3525 _libraryNode = new LibraryNode(this);
3526 } 3526 }
3527 3527
3528 /** 3528 /**
3529 * Get the inheritance manager for this library (creating it if necessary). 3529 * Get the inheritance manager for this library (creating it if necessary).
3530 */ 3530 */
3531 InheritanceManager get inheritanceManager => 3531 InheritanceManager get inheritanceManager =>
3532 _inheritanceManager ??= new InheritanceManager(this); 3532 _inheritanceManager ??= new InheritanceManager(this, ignoreErrors: true);
3533 3533
3534 @override 3534 @override
3535 LibraryCycleForLink get libraryCycleForLink { 3535 LibraryCycleForLink get libraryCycleForLink {
3536 if (!_libraryNode.isEvaluated) { 3536 if (!_libraryNode.isEvaluated) {
3537 new LibraryDependencyWalker().walk(_libraryNode); 3537 new LibraryDependencyWalker().walk(_libraryNode);
3538 } 3538 }
3539 return _libraryNode._libraryCycle; 3539 return _libraryNode._libraryCycle;
3540 } 3540 }
3541 3541
3542 /** 3542 /**
(...skipping 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after
5096 * there are no type parameters in scope. 5096 * there are no type parameters in scope.
5097 */ 5097 */
5098 TypeParameterizedElementMixin get _typeParameterContext; 5098 TypeParameterizedElementMixin get _typeParameterContext;
5099 5099
5100 @override 5100 @override
5101 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 5101 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
5102 5102
5103 @override 5103 @override
5104 String toString() => '$enclosingElement.$name'; 5104 String toString() => '$enclosingElement.$name';
5105 } 5105 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698