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

Unified Diff: pkg/analyzer/lib/src/summary/summarize_elements.dart

Issue 1841603003: Serialize references to type parameters in final fields. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analyzer/test/src/summary/resynthesize_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/summary/summarize_elements.dart
diff --git a/pkg/analyzer/lib/src/summary/summarize_elements.dart b/pkg/analyzer/lib/src/summary/summarize_elements.dart
index 97ee5e32c02711963a57daa413ebd3ac83e2772f..09ea986175f43044ad6ed3403fa73dff073fa1cb 100644
--- a/pkg/analyzer/lib/src/summary/summarize_elements.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_elements.dart
@@ -505,7 +505,8 @@ class _CompilationUnitSerializer {
return const <UnlinkedConstBuilder>[];
}
return element.metadata.map((ElementAnnotationImpl a) {
- _ConstExprSerializer serializer = new _ConstExprSerializer(this, null);
+ _ConstExprSerializer serializer =
+ new _ConstExprSerializer(this, element, null);
serializer.serializeAnnotation(a.annotationAst);
return serializer.toBuilder();
}).toList();
@@ -651,10 +652,11 @@ class _CompilationUnitSerializer {
/**
* Serialize the given [expression], creating an [UnlinkedConstBuilder].
*/
- UnlinkedConstBuilder serializeConstExpr(Expression expression,
+ UnlinkedConstBuilder serializeConstExpr(
+ Element context, Expression expression,
[Set<String> constructorParameterNames]) {
_ConstExprSerializer serializer =
- new _ConstExprSerializer(this, constructorParameterNames);
+ new _ConstExprSerializer(this, context, constructorParameterNames);
serializer.serialize(expression);
return serializer.toBuilder();
}
@@ -769,8 +771,8 @@ class _CompilationUnitSerializer {
.map((ConstructorInitializer initializer) =>
serializeConstructorInitializer(
initializer,
- (expr) =>
- serializeConstExpr(expr, constructorParameterNames)))
+ (expr) => serializeConstExpr(
+ executableElement, expr, constructorParameterNames)))
.toList();
}
}
@@ -906,7 +908,7 @@ class _CompilationUnitSerializer {
ConstVariableElement constParameter = parameter as ConstVariableElement;
Expression initializer = constParameter.constantInitializer;
if (initializer != null) {
- b.defaultValue = serializeConstExpr(initializer);
+ b.defaultValue = serializeConstExpr(parameter, initializer);
b.defaultValueCode = parameter.defaultValueCode;
}
}
@@ -1120,7 +1122,7 @@ class _CompilationUnitSerializer {
ConstVariableElement constVariable = variable as ConstVariableElement;
Expression initializer = constVariable.constantInitializer;
if (initializer != null) {
- b.constExpr = serializeConstExpr(initializer);
+ b.constExpr = serializeConstExpr(variable, initializer);
}
}
if (variable is PropertyInducingElement) {
@@ -1284,6 +1286,7 @@ class _CompilationUnitSerializer {
*/
class _ConstExprSerializer extends AbstractConstExprSerializer {
final _CompilationUnitSerializer serializer;
+ final Element context;
/**
* If a constructor initializer expression is being serialized, the names of
@@ -1291,7 +1294,8 @@ class _ConstExprSerializer extends AbstractConstExprSerializer {
*/
final Set<String> constructorParameterNames;
- _ConstExprSerializer(this.serializer, this.constructorParameterNames);
+ _ConstExprSerializer(
+ this.serializer, this.context, this.constructorParameterNames);
@override
bool isConstructorParameterName(String name) {
@@ -1422,7 +1426,7 @@ class _ConstExprSerializer extends AbstractConstExprSerializer {
}
}
DartType type = typeName != null ? typeName.type : DynamicTypeImpl.instance;
- return serializer.serializeTypeRef(type, null);
+ return serializer.serializeTypeRef(type, context);
}
}
« no previous file with comments | « no previous file | pkg/analyzer/test/src/summary/resynthesize_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698