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

Side by Side Diff: runtime/vm/scopes_test.cc

Issue 2419013004: Add local variable declaration token position to service protocol (Closed)
Patch Set: ... Created 4 years, 2 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
« no previous file with comments | « runtime/vm/scopes.cc ('k') | runtime/vm/service/service.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 #include "platform/assert.h" 5 #include "platform/assert.h"
6 #include "vm/ast.h" 6 #include "vm/ast.h"
7 #include "vm/scopes.h" 7 #include "vm/scopes.h"
8 #include "vm/unit_test.h" 8 #include "vm/unit_test.h"
9 9
10 namespace dart { 10 namespace dart {
11 11
12 TEST_CASE(LocalScope) { 12 TEST_CASE(LocalScope) {
13 // Allocate a couple of local variables first. 13 // Allocate a couple of local variables first.
14 const Type& dynamic_type = Type::ZoneHandle(Type::DynamicType()); 14 const Type& dynamic_type = Type::ZoneHandle(Type::DynamicType());
15 const String& a = String::ZoneHandle(Symbols::New(thread, "a")); 15 const String& a = String::ZoneHandle(Symbols::New(thread, "a"));
16 LocalVariable* var_a = 16 LocalVariable* var_a =
17 new LocalVariable(TokenPosition::kNoSource, a, dynamic_type); 17 new LocalVariable(TokenPosition::kNoSource,
18 TokenPosition::kNoSource, a, dynamic_type);
18 LocalVariable* inner_var_a = 19 LocalVariable* inner_var_a =
19 new LocalVariable(TokenPosition::kNoSource, a, dynamic_type); 20 new LocalVariable(TokenPosition::kNoSource,
21 TokenPosition::kNoSource, a, dynamic_type);
20 const String& b = String::ZoneHandle(Symbols::New(thread, "b")); 22 const String& b = String::ZoneHandle(Symbols::New(thread, "b"));
21 LocalVariable* var_b = 23 LocalVariable* var_b =
22 new LocalVariable(TokenPosition::kNoSource, b, dynamic_type); 24 new LocalVariable(TokenPosition::kNoSource,
25 TokenPosition::kNoSource, b, dynamic_type);
23 const String& c = String::ZoneHandle(Symbols::New(thread, "c")); 26 const String& c = String::ZoneHandle(Symbols::New(thread, "c"));
24 LocalVariable* var_c = 27 LocalVariable* var_c =
25 new LocalVariable(TokenPosition::kNoSource, c, dynamic_type); 28 new LocalVariable(TokenPosition::kNoSource,
29 TokenPosition::kNoSource, c, dynamic_type);
26 const String& L = String::ZoneHandle(Symbols::New(thread, "L")); 30 const String& L = String::ZoneHandle(Symbols::New(thread, "L"));
27 SourceLabel* label_L = 31 SourceLabel* label_L =
28 new SourceLabel(TokenPosition::kNoSource, L, SourceLabel::kFor); 32 new SourceLabel(TokenPosition::kNoSource, L, SourceLabel::kFor);
29 33
30 LocalScope* outer_scope = new LocalScope(NULL, 0, 0); 34 LocalScope* outer_scope = new LocalScope(NULL, 0, 0);
31 LocalScope* inner_scope1 = new LocalScope(outer_scope, 0, 0); 35 LocalScope* inner_scope1 = new LocalScope(outer_scope, 0, 0);
32 LocalScope* inner_scope2 = new LocalScope(outer_scope, 0, 0); 36 LocalScope* inner_scope2 = new LocalScope(outer_scope, 0, 0);
33 37
34 EXPECT(outer_scope->parent() == NULL); 38 EXPECT(outer_scope->parent() == NULL);
35 EXPECT_EQ(outer_scope, inner_scope1->parent()); 39 EXPECT_EQ(outer_scope, inner_scope1->parent());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 (inner_scope1->VariableAt(1) == var_b)); 110 (inner_scope1->VariableAt(1) == var_b));
107 EXPECT((inner_scope2->VariableAt(0) == var_a) || 111 EXPECT((inner_scope2->VariableAt(0) == var_a) ||
108 (inner_scope2->VariableAt(1) == var_a) || 112 (inner_scope2->VariableAt(1) == var_a) ||
109 (inner_scope2->VariableAt(2) == var_a)); 113 (inner_scope2->VariableAt(2) == var_a));
110 EXPECT((inner_scope2->VariableAt(0) == var_c) || 114 EXPECT((inner_scope2->VariableAt(0) == var_c) ||
111 (inner_scope2->VariableAt(1) == var_c) || 115 (inner_scope2->VariableAt(1) == var_c) ||
112 (inner_scope2->VariableAt(2) == var_c)); 116 (inner_scope2->VariableAt(2) == var_c));
113 } 117 }
114 118
115 } // namespace dart 119 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/scopes.cc ('k') | runtime/vm/service/service.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698