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

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

Issue 2136703002: Flush InterfaceTypeImpl cached memebers when ClassElement.version is different. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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) 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 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 _unnamedConstructor = constructor; 586 _unnamedConstructor = constructor;
587 break; 587 break;
588 } 588 }
589 } 589 }
590 _unnamedConstructorComputed = true; 590 _unnamedConstructorComputed = true;
591 } 591 }
592 return _unnamedConstructor; 592 return _unnamedConstructor;
593 } 593 }
594 594
595 @override 595 @override
596 int get version => 0;
597
598 @override
596 DartType buildType( 599 DartType buildType(
597 DartType getTypeArgument(int i), List<int> implicitFunctionTypeIndices) { 600 DartType getTypeArgument(int i), List<int> implicitFunctionTypeIndices) {
598 int numTypeParameters = _unlinkedClass.typeParameters.length; 601 int numTypeParameters = _unlinkedClass.typeParameters.length;
599 if (numTypeParameters != 0) { 602 if (numTypeParameters != 0) {
600 return new InterfaceTypeImpl.elementWithNameAndArgs(this, name, () { 603 return new InterfaceTypeImpl.elementWithNameAndArgs(this, name, () {
601 List<DartType> typeArguments = new List<DartType>(numTypeParameters); 604 List<DartType> typeArguments = new List<DartType>(numTypeParameters);
602 for (int i = 0; i < numTypeParameters; i++) { 605 for (int i = 0; i < numTypeParameters; i++) {
603 typeArguments[i] = 606 typeArguments[i] =
604 getTypeArgument(i) ?? computeDefaultTypeArgument(i); 607 getTypeArgument(i) ?? computeDefaultTypeArgument(i);
605 } 608 }
(...skipping 4347 matching lines...) Expand 10 before | Expand all | Expand 10 after
4953 * there are no type parameters in scope. 4956 * there are no type parameters in scope.
4954 */ 4957 */
4955 TypeParameterizedElementMixin get _typeParameterContext; 4958 TypeParameterizedElementMixin get _typeParameterContext;
4956 4959
4957 @override 4960 @override
4958 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 4961 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
4959 4962
4960 @override 4963 @override
4961 String toString() => '$enclosingElement.$name'; 4964 String toString() => '$enclosingElement.$name';
4962 } 4965 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/dart/element/type.dart ('k') | pkg/analyzer/lib/src/task/incremental_element_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698