Index: tests/compiler/dart2js/serialization/helper.dart |
diff --git a/tests/compiler/dart2js/serialization/helper.dart b/tests/compiler/dart2js/serialization/helper.dart |
index a2f38ad8f67106af785813e87a5c269c503e83e5..3ceea68e097ab4119a694e900a88c3bfd6ac033d 100644 |
--- a/tests/compiler/dart2js/serialization/helper.dart |
+++ b/tests/compiler/dart2js/serialization/helper.dart |
@@ -232,11 +232,14 @@ class _DeserializerSystem extends DeserializerSystem { |
@override |
bool hasResolvedAst(ExecutableElement element) { |
Siggi Cherem (dart-lang)
2016/05/13 19:43:51
I wonder if we can get rid of `hasResovledAst` now
Johnni Winther
2016/05/17 11:59:52
Soon. Adding a TODO.
|
- return _resolvedAstDeserializer.hasResolvedAst(element); |
+ return getResolvedAst(element) != null; |
} |
@override |
ResolvedAst getResolvedAst(ExecutableElement element) { |
+ if (element.hasResolvedAst) { |
+ return element.resolvedAst; |
+ } |
return _resolvedAstDeserializer.getResolvedAst(element); |
} |
@@ -275,6 +278,9 @@ class _DeserializerSystem extends DeserializerSystem { |
ResolutionImpact resolutionImpact = getResolutionImpact(element); |
assert(invariant(element, resolutionImpact != null, |
message: 'No impact found for $element (${element.library})')); |
+ if (element is ExecutableElement) { |
+ getResolvedAst(element); |
+ } |
return _impactTransformer.transformResolutionImpact(resolutionImpact); |
} |
@@ -314,8 +320,6 @@ class ResolvedAstDeserializerPlugin extends DeserializerPlugin { |
final DeserializerPlugin nativeDataDeserializer; |
final Map<Uri, SourceFile> sourceFiles = <Uri, SourceFile>{}; |
- Map<ExecutableElement, ResolvedAst> _resolvedAstMap = |
- <ExecutableElement, ResolvedAst>{}; |
Map<MemberElement, ObjectDecoder> _decoderMap = |
<MemberElement, ObjectDecoder>{}; |
Map<Uri, Token> beginTokenMap = <Uri, Token>{}; |
@@ -324,24 +328,23 @@ class ResolvedAstDeserializerPlugin extends DeserializerPlugin { |
this.parsingContext, this.nativeDataDeserializer); |
bool hasResolvedAst(ExecutableElement element) { |
- return _resolvedAstMap.containsKey(element) || |
- _decoderMap.containsKey(element.memberContext); |
+ return getResolvedAst(element) != null; |
} |
ResolvedAst getResolvedAst(ExecutableElement element) { |
- ResolvedAst resolvedAst = _resolvedAstMap[element]; |
- if (resolvedAst == null) { |
- ObjectDecoder decoder = _decoderMap[element.memberContext]; |
- if (decoder != null) { |
- ResolvedAstDeserializer.deserialize( |
- element.memberContext, decoder, parsingContext, findToken, |
- nativeDataDeserializer, |
- _resolvedAstMap); |
- _decoderMap.remove(element); |
- resolvedAst = _resolvedAstMap[element]; |
- } |
+ if (element.hasResolvedAst) { |
Siggi Cherem (dart-lang)
2016/05/13 19:43:51
correct me if I'm wrong, Is this always called fro
Johnni Winther
2016/05/17 11:59:51
Done.
|
+ return element.resolvedAst; |
+ } |
+ |
+ ObjectDecoder decoder = _decoderMap[element.memberContext]; |
+ if (decoder != null) { |
+ ResolvedAstDeserializer.deserialize( |
+ element.memberContext, decoder, parsingContext, findToken, |
+ nativeDataDeserializer); |
+ _decoderMap.remove(element); |
+ return element.resolvedAst; |
Siggi Cherem (dart-lang)
2016/05/13 19:43:51
could we assert here that element.resolvedAst != n
Johnni Winther
2016/05/17 11:59:52
Done.
|
} |
- return resolvedAst; |
+ return null; |
} |
Token findToken(Uri uri, int offset) { |