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

Unified Diff: sdk/lib/_internal/compiler/implementation/tree/nodes.dart

Issue 24488004: Implement correct scoping rules for variables. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 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
Index: sdk/lib/_internal/compiler/implementation/tree/nodes.dart
diff --git a/sdk/lib/_internal/compiler/implementation/tree/nodes.dart b/sdk/lib/_internal/compiler/implementation/tree/nodes.dart
index 6f3389a51249742929191703d28030f48b7da5a8..e47c299616b936f44ad3b155cbb3e61388114a75 100644
--- a/sdk/lib/_internal/compiler/implementation/tree/nodes.dart
+++ b/sdk/lib/_internal/compiler/implementation/tree/nodes.dart
@@ -555,8 +555,9 @@ class NodeList extends Node {
class Block extends Statement {
final NodeList statements;
+ final Link<VariableDefinitions> declarations;
ahe 2013/09/26 07:48:07 I'm not sure this is a good place for this informa
ngeoffray 2013/09/26 07:48:38 This seems off. Can't you handle during resolution
karlklose 2013/09/27 07:07:43 We do not really have a place to store it in the m
- Block(this.statements);
+ Block(this.statements, this.declarations);
Block asBlock() => this;
@@ -1566,6 +1567,8 @@ class SwitchCase extends Node {
// They are separated here, since the order is irrelevant to the meaning
// of the switch.
+ final Link<VariableDefinitions> declarations;
ahe 2013/09/26 07:48:07 This doesn't feel like a part of a switch case.
karlklose 2013/09/27 07:07:43 They are part of the statements, that's why I adde
+
/** List of [Label] and [CaseMatch] nodes. */
final NodeList labelsAndCases;
/** A "default" keyword token, if applicable. */
@@ -1575,8 +1578,8 @@ class SwitchCase extends Node {
final Token startToken;
- SwitchCase(this.labelsAndCases, this.defaultKeyword,
- this.statements, this.startToken);
+ SwitchCase(this.labelsAndCases, this.defaultKeyword, this.statements,
+ this.startToken, this.declarations);
ngeoffray 2013/09/26 07:48:38 indentation.
SwitchCase asSwitchCase() => this;

Powered by Google App Engine
This is Rietveld 408576698