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

Unified Diff: runtime/vm/parser.cc

Issue 2683973002: Handle type literals correctly with deferred loading and await. (Closed)
Patch Set: add comment Created 3 years, 10 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 | « runtime/vm/ast_transformer.cc ('k') | tests/language/deferred_regression_28678_lib.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/parser.cc
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index b4153c3eeddffc5b413d56c8991e5272413a1bd5..51bca8edb4ca6ceafe29d1e8a11f00b97bdd2c92 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -11837,7 +11837,8 @@ AstNode* Parser::ParseSelectors(AstNode* primary, bool is_cascade) {
type ^= CanonicalizeType(type);
// Type may be malbounded, but not malformed.
ASSERT(!type.IsMalformed());
- array = new (Z) TypeNode(primary_pos, type);
+ array = new (Z) TypeNode(primary_pos, type,
+ primary_node->is_deferred_reference());
} else if (primary_node->primary().IsTypeParameter()) {
array = LoadTypeParameter(primary_node);
} else {
@@ -11931,7 +11932,8 @@ AstNode* Parser::ParseSelectors(AstNode* primary, bool is_cascade) {
type ^= CanonicalizeType(type);
// Type may be malbounded, but not malformed.
ASSERT(!type.IsMalformed());
- selector = new (Z) TypeNode(primary_pos, type);
+ selector = new (Z) TypeNode(primary_pos, type,
+ primary_node->is_deferred_reference());
} else {
UNREACHABLE(); // Internal parser error.
}
@@ -11957,7 +11959,8 @@ AstNode* Parser::ParseSelectors(AstNode* primary, bool is_cascade) {
type = CanonicalizeType(type);
// Type may be malbounded, but not malformed.
ASSERT(!type.IsMalformed());
- left = new (Z) TypeNode(primary_pos, type);
+ left = new (Z) TypeNode(primary_pos, type,
+ primary_node->is_deferred_reference());
} else if (primary_node->primary().IsTypeParameter()) {
left = LoadTypeParameter(primary_node);
} else if (primary_node->IsSuper()) {
@@ -12878,7 +12881,8 @@ AstNode* Parser::ResolveIdent(TokenPosition ident_pos,
type ^= CanonicalizeType(type);
// Type may be malbounded, but not malformed.
ASSERT(!type.IsMalformed());
- resolved = new (Z) TypeNode(primary_pos, type);
+ resolved =
+ new (Z) TypeNode(primary_pos, type, primary->is_deferred_reference());
}
}
return resolved;
« no previous file with comments | « runtime/vm/ast_transformer.cc ('k') | tests/language/deferred_regression_28678_lib.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698