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

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

Issue 2781893004: Remove definitions from Kernel canonical names. (Closed)
Patch Set: Update test expectations. Created 3 years, 8 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/kernel.h ('k') | runtime/vm/kernel_binary.cc » ('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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 "vm/kernel.h" 5 #include "vm/kernel.h"
6 6
7 #if !defined(DART_PRECOMPILED_RUNTIME) 7 #if !defined(DART_PRECOMPILED_RUNTIME)
8 namespace dart { 8 namespace dart {
9 9
10 namespace kernel { 10 namespace kernel {
(...skipping 15 matching lines...) Expand all
26 delete children_[i]; 26 delete children_[i];
27 } 27 }
28 } 28 }
29 29
30 30
31 CanonicalName* CanonicalName::NewRoot() { 31 CanonicalName* CanonicalName::NewRoot() {
32 return new CanonicalName(); 32 return new CanonicalName();
33 } 33 }
34 34
35 35
36 void CanonicalName::BindTo(LinkedNode* new_target) {
37 ASSERT(new_target != NULL);
38 if (definition_ == new_target) return;
39 ASSERT(definition_ == NULL);
40 ASSERT(new_target->canonical_name_ == NULL);
41 definition_ = new_target;
42 new_target->canonical_name_ = this;
43 }
44
45
46 void CanonicalName::Unbind() {
47 if (definition_ == NULL) return;
48 ASSERT(definition_->canonical_name_ == this);
49 definition_->canonical_name_ = NULL;
50 definition_ = NULL;
51 }
52
53
54 CanonicalName* CanonicalName::AddChild(String* name) { 36 CanonicalName* CanonicalName::AddChild(String* name) {
55 CanonicalName* child = new CanonicalName(); 37 CanonicalName* child = new CanonicalName();
56 child->parent_ = this; 38 child->parent_ = this;
57 child->name_ = name; 39 child->name_ = name;
58 children_.Add(child); 40 children_.Add(child);
59 return child; 41 return child;
60 } 42 }
61 43
62 44
63 Library* CanonicalName::AsLibrary() { 45 bool CanonicalName::IsAdministrative() {
64 return Library::Cast(definition()); 46 // Administrative names start with '@'.
47 return (name()->size() > 0) && (name()->buffer()[0] == '@');
65 } 48 }
66 49
67 50
68 Class* CanonicalName::AsClass() { 51 bool CanonicalName::IsPrivate() {
69 return Class::Cast(definition()); 52 // Private names start with '_'.
53 return (name()->size() > 0) && (name()->buffer()[0] == '_');
70 } 54 }
71 55
72 56
73 Member* CanonicalName::AsMember() { 57 bool CanonicalName::IsRoot() {
74 return Member::Cast(definition()); 58 // The root is the only canonical name with no parent.
59 return parent() == NULL;
75 } 60 }
76 61
77 62
78 Field* CanonicalName::AsField() { 63 bool CanonicalName::IsLibrary() {
79 return Field::Cast(definition()); 64 // Libraries are the only canonical names with the root as their parent.
65 return !IsRoot() && parent()->IsRoot();
80 } 66 }
81 67
82 68
83 Constructor* CanonicalName::AsConstructor() { 69 bool CanonicalName::IsClass() {
84 return Constructor::Cast(definition()); 70 // Classes have the library as their parent and are not an administrative
71 // name starting with @.
72 return !IsAdministrative() && !IsRoot() && parent()->IsLibrary();
85 } 73 }
86 74
87 75
88 Procedure* CanonicalName::AsProcedure() { 76 bool CanonicalName::IsMember() {
89 return Procedure::Cast(definition()); 77 return IsConstructor() || IsField() || IsProcedure();
90 } 78 }
91 79
92 80
81 // Note the two occurrences of the parameter 'literal'.
82 #define COMPARE_NAME(canonical_name, literal) \
83 memcmp((canonical_name)->name()->buffer(), (literal), strlen(literal)) == 0
84
85 bool CanonicalName::IsField() {
86 // Fields with private names have the import URI of the library where they are
87 // visible as the parent and the string "@fields" as the parent's parent.
88 // Fields with non-private names have the string "@fields' as the parent.
89 if (IsRoot()) {
90 return false;
91 }
92 CanonicalName* kind = this->parent();
93 if (IsPrivate()) {
94 kind = kind->parent();
95 }
96 return COMPARE_NAME(kind, "@fields");
97 }
98
99
100 bool CanonicalName::IsConstructor() {
101 // Constructors with private names have the import URI of the library where
102 // they are visible as the parent and the string "@constructors" as the
103 // parent's parent. Constructors with non-private names have the string
104 // "@constructors" as the parent.
105 if (IsRoot()) {
106 return false;
107 }
108 CanonicalName* kind = this->parent();
109 if (IsPrivate()) {
110 kind = kind->parent();
111 }
112 return COMPARE_NAME(kind, "@constructors");
113 }
114
115
116 bool CanonicalName::IsProcedure() {
117 return IsMethod() || IsGetter() || IsSetter() || IsFactory();
118 }
119
120
121 bool CanonicalName::IsMethod() {
122 // Methods with private names have the import URI of the library where they
123 // are visible as the parent and the string "@methods" as the parent's parent.
124 // Methods with non-private names have the string "@methods" as the parent.
125 if (IsRoot()) {
126 return false;
127 }
128 CanonicalName* kind = this->parent();
129 if (IsPrivate()) {
130 kind = kind->parent();
131 }
132 return COMPARE_NAME(kind, "@methods");
133 }
134
135
136 bool CanonicalName::IsGetter() {
137 // Getters with private names have the import URI of the library where they
138 // are visible as the parent and the string "@getters" as the parent's parent.
139 // Getters with non-private names have the string "@getters" as the parent.
140 if (IsRoot()) {
141 return false;
142 }
143 CanonicalName* kind = this->parent();
144 if (IsPrivate()) {
145 kind = kind->parent();
146 }
147 return COMPARE_NAME(kind, "@getters");
148 }
149
150
151 bool CanonicalName::IsSetter() {
152 // Setters with private names have the import URI of the library where they
153 // are visible as the parent and the string "@setters" as the parent's parent.
154 // Setters with non-private names have the string "@setters" as the parent.
155 if (IsRoot()) {
156 return false;
157 }
158 CanonicalName* kind = this->parent();
159 if (IsPrivate()) {
160 kind = kind->parent();
161 }
162 return COMPARE_NAME(kind, "@setters");
163 }
164
165
166 bool CanonicalName::IsFactory() {
167 // Factories with private names have the import URI of the library where they
168 // are visible as the parent and the string "@factories" as the parent's
169 // parent. Factories with non-private names have the string "@factories" as
170 // the parent.
171 if (IsRoot()) {
172 return false;
173 }
174 CanonicalName* kind = this->parent();
175 if (IsPrivate()) {
176 kind = kind->parent();
177 }
178 return COMPARE_NAME(kind, "@factories");
179 }
180
181 #undef COMPARE_NAME
182
183
184 CanonicalName* CanonicalName::EnclosingName() {
185 ASSERT(IsField() || IsConstructor() || IsProcedure());
186 CanonicalName* enclosing = parent()->parent();
187 if (IsPrivate()) {
188 enclosing = enclosing->parent();
189 }
190 ASSERT(enclosing->IsLibrary() || enclosing->IsClass());
191 return enclosing;
192 }
193
194
93 Node::~Node() {} 195 Node::~Node() {}
94 196
95 197
96 TreeNode::~TreeNode() {} 198 TreeNode::~TreeNode() {}
97 199
98 200
99 void TreeNode::AcceptVisitor(Visitor* visitor) { 201 void TreeNode::AcceptVisitor(Visitor* visitor) {
100 AcceptTreeVisitor(visitor); 202 AcceptTreeVisitor(visitor);
101 } 203 }
102 204
(...skipping 25 matching lines...) Expand all
128 230
129 231
130 NormalClass::~NormalClass() {} 232 NormalClass::~NormalClass() {}
131 233
132 234
133 void NormalClass::AcceptClassVisitor(ClassVisitor* visitor) { 235 void NormalClass::AcceptClassVisitor(ClassVisitor* visitor) {
134 visitor->VisitNormalClass(this); 236 visitor->VisitNormalClass(this);
135 } 237 }
136 238
137 239
138 void NormalClass::AcceptReferenceVisitor(ClassReferenceVisitor* visitor) {
139 visitor->VisitNormalClassReference(this);
140 }
141
142
143 void NormalClass::VisitChildren(Visitor* visitor) { 240 void NormalClass::VisitChildren(Visitor* visitor) {
144 VisitList(&type_parameters(), visitor); 241 VisitList(&type_parameters(), visitor);
145 if (super_class() != NULL) visitor->VisitInterfaceType(super_class()); 242 if (super_class() != NULL) visitor->VisitInterfaceType(super_class());
146 VisitList(&implemented_classes(), visitor); 243 VisitList(&implemented_classes(), visitor);
147 VisitList(&constructors(), visitor); 244 VisitList(&constructors(), visitor);
148 VisitList(&procedures(), visitor); 245 VisitList(&procedures(), visitor);
149 VisitList(&fields(), visitor); 246 VisitList(&fields(), visitor);
150 } 247 }
151 248
152 249
153 MixinClass::~MixinClass() {} 250 MixinClass::~MixinClass() {}
154 251
155 252
156 void MixinClass::AcceptClassVisitor(ClassVisitor* visitor) { 253 void MixinClass::AcceptClassVisitor(ClassVisitor* visitor) {
157 visitor->VisitMixinClass(this); 254 visitor->VisitMixinClass(this);
158 } 255 }
159 256
160 257
161 void MixinClass::AcceptReferenceVisitor(ClassReferenceVisitor* visitor) {
162 visitor->VisitMixinClassReference(this);
163 }
164
165
166 void MixinClass::VisitChildren(Visitor* visitor) { 258 void MixinClass::VisitChildren(Visitor* visitor) {
167 VisitList(&type_parameters(), visitor); 259 VisitList(&type_parameters(), visitor);
168 visitor->VisitInterfaceType(first()); 260 visitor->VisitInterfaceType(first());
169 visitor->VisitInterfaceType(second()); 261 visitor->VisitInterfaceType(second());
170 VisitList(&implemented_classes(), visitor); 262 VisitList(&implemented_classes(), visitor);
171 VisitList(&constructors(), visitor); 263 VisitList(&constructors(), visitor);
172 } 264 }
173 265
174 266
175 Member::~Member() {} 267 Member::~Member() {}
176 268
177 269
178 void Member::AcceptTreeVisitor(TreeVisitor* visitor) { 270 void Member::AcceptTreeVisitor(TreeVisitor* visitor) {
179 AcceptMemberVisitor(visitor); 271 AcceptMemberVisitor(visitor);
180 } 272 }
181 273
182 274
183 Field::~Field() {} 275 Field::~Field() {}
184 276
185 277
186 void Field::AcceptMemberVisitor(MemberVisitor* visitor) { 278 void Field::AcceptMemberVisitor(MemberVisitor* visitor) {
187 visitor->VisitField(this); 279 visitor->VisitField(this);
188 } 280 }
189 281
190 282
191 void Field::AcceptReferenceVisitor(MemberReferenceVisitor* visitor) {
192 visitor->VisitFieldReference(this);
193 }
194
195
196 void Field::VisitChildren(Visitor* visitor) { 283 void Field::VisitChildren(Visitor* visitor) {
197 type()->AcceptDartTypeVisitor(visitor); 284 type()->AcceptDartTypeVisitor(visitor);
198 visitor->VisitName(name()); 285 visitor->VisitName(name());
199 if (initializer() != NULL) initializer()->AcceptExpressionVisitor(visitor); 286 if (initializer() != NULL) initializer()->AcceptExpressionVisitor(visitor);
200 } 287 }
201 288
202 289
203 Constructor::~Constructor() {} 290 Constructor::~Constructor() {}
204 291
205 292
206 void Constructor::AcceptMemberVisitor(MemberVisitor* visitor) { 293 void Constructor::AcceptMemberVisitor(MemberVisitor* visitor) {
207 visitor->VisitConstructor(this); 294 visitor->VisitConstructor(this);
208 } 295 }
209 296
210 297
211 void Constructor::AcceptReferenceVisitor(MemberReferenceVisitor* visitor) {
212 visitor->VisitConstructorReference(this);
213 }
214
215
216 void Constructor::VisitChildren(Visitor* visitor) { 298 void Constructor::VisitChildren(Visitor* visitor) {
217 visitor->VisitName(name()); 299 visitor->VisitName(name());
218 visitor->VisitFunctionNode(function()); 300 visitor->VisitFunctionNode(function());
219 VisitList(&initializers(), visitor); 301 VisitList(&initializers(), visitor);
220 } 302 }
221 303
222 304
223 Procedure::~Procedure() {} 305 Procedure::~Procedure() {}
224 306
225 307
226 void Procedure::AcceptMemberVisitor(MemberVisitor* visitor) { 308 void Procedure::AcceptMemberVisitor(MemberVisitor* visitor) {
227 visitor->VisitProcedure(this); 309 visitor->VisitProcedure(this);
228 } 310 }
229 311
230 312
231 void Procedure::AcceptReferenceVisitor(MemberReferenceVisitor* visitor) {
232 visitor->VisitProcedureReference(this);
233 }
234
235
236 void Procedure::VisitChildren(Visitor* visitor) { 313 void Procedure::VisitChildren(Visitor* visitor) {
237 visitor->VisitName(name()); 314 visitor->VisitName(name());
238 if (function() != NULL) visitor->VisitFunctionNode(function()); 315 if (function() != NULL) visitor->VisitFunctionNode(function());
239 } 316 }
240 317
241 318
242 Initializer::~Initializer() {} 319 Initializer::~Initializer() {}
243 320
244 321
245 void Initializer::AcceptTreeVisitor(TreeVisitor* visitor) { 322 void Initializer::AcceptTreeVisitor(TreeVisitor* visitor) {
(...skipping 14 matching lines...) Expand all
260 337
261 FieldInitializer::~FieldInitializer() {} 338 FieldInitializer::~FieldInitializer() {}
262 339
263 340
264 void FieldInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) { 341 void FieldInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) {
265 visitor->VisitFieldInitializer(this); 342 visitor->VisitFieldInitializer(this);
266 } 343 }
267 344
268 345
269 void FieldInitializer::VisitChildren(Visitor* visitor) { 346 void FieldInitializer::VisitChildren(Visitor* visitor) {
270 visitor->VisitFieldReference(field());
271 value()->AcceptExpressionVisitor(visitor); 347 value()->AcceptExpressionVisitor(visitor);
272 } 348 }
273 349
274 350
275 SuperInitializer::~SuperInitializer() {} 351 SuperInitializer::~SuperInitializer() {}
276 352
277 353
278 void SuperInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) { 354 void SuperInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) {
279 visitor->VisitSuperInitializer(this); 355 visitor->VisitSuperInitializer(this);
280 } 356 }
281 357
282 358
283 void SuperInitializer::VisitChildren(Visitor* visitor) { 359 void SuperInitializer::VisitChildren(Visitor* visitor) {
284 visitor->VisitConstructorReference(target());
285 visitor->VisitArguments(arguments()); 360 visitor->VisitArguments(arguments());
286 } 361 }
287 362
288 363
289 RedirectingInitializer::~RedirectingInitializer() {} 364 RedirectingInitializer::~RedirectingInitializer() {}
290 365
291 366
292 void RedirectingInitializer::AcceptInitializerVisitor( 367 void RedirectingInitializer::AcceptInitializerVisitor(
293 InitializerVisitor* visitor) { 368 InitializerVisitor* visitor) {
294 visitor->VisitRedirectingInitializer(this); 369 visitor->VisitRedirectingInitializer(this);
295 } 370 }
296 371
297 372
298 void RedirectingInitializer::VisitChildren(Visitor* visitor) { 373 void RedirectingInitializer::VisitChildren(Visitor* visitor) {
299 visitor->VisitConstructorReference(target());
300 visitor->VisitArguments(arguments()); 374 visitor->VisitArguments(arguments());
301 } 375 }
302 376
303 377
304 LocalInitializer::~LocalInitializer() {} 378 LocalInitializer::~LocalInitializer() {}
305 379
306 380
307 void LocalInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) { 381 void LocalInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) {
308 visitor->VisitLocalInitializer(this); 382 visitor->VisitLocalInitializer(this);
309 } 383 }
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 DirectPropertyGet::~DirectPropertyGet() {} 480 DirectPropertyGet::~DirectPropertyGet() {}
407 481
408 482
409 void DirectPropertyGet::AcceptExpressionVisitor(ExpressionVisitor* visitor) { 483 void DirectPropertyGet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
410 visitor->VisitDirectPropertyGet(this); 484 visitor->VisitDirectPropertyGet(this);
411 } 485 }
412 486
413 487
414 void DirectPropertyGet::VisitChildren(Visitor* visitor) { 488 void DirectPropertyGet::VisitChildren(Visitor* visitor) {
415 receiver()->AcceptExpressionVisitor(visitor); 489 receiver()->AcceptExpressionVisitor(visitor);
416 target()->AcceptReferenceVisitor(visitor);
417 } 490 }
418 491
419 492
420 DirectPropertySet::~DirectPropertySet() {} 493 DirectPropertySet::~DirectPropertySet() {}
421 494
422 495
423 void DirectPropertySet::AcceptExpressionVisitor(ExpressionVisitor* visitor) { 496 void DirectPropertySet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
424 visitor->VisitDirectPropertySet(this); 497 visitor->VisitDirectPropertySet(this);
425 } 498 }
426 499
427 500
428 void DirectPropertySet::VisitChildren(Visitor* visitor) { 501 void DirectPropertySet::VisitChildren(Visitor* visitor) {
429 receiver()->AcceptExpressionVisitor(visitor); 502 receiver()->AcceptExpressionVisitor(visitor);
430 target()->AcceptReferenceVisitor(visitor);
431 value()->AcceptExpressionVisitor(visitor); 503 value()->AcceptExpressionVisitor(visitor);
432 } 504 }
433 505
434 506
435 StaticGet::~StaticGet() {} 507 StaticGet::~StaticGet() {}
436 508
437 509
438 void StaticGet::AcceptExpressionVisitor(ExpressionVisitor* visitor) { 510 void StaticGet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
439 visitor->VisitStaticGet(this); 511 visitor->VisitStaticGet(this);
440 } 512 }
441 513
442 514
443 void StaticGet::VisitChildren(Visitor* visitor) { 515 void StaticGet::VisitChildren(Visitor* visitor) {}
444 target()->AcceptReferenceVisitor(visitor);
445 }
446 516
447 517
448 StaticSet::~StaticSet() {} 518 StaticSet::~StaticSet() {}
449 519
450 520
451 void StaticSet::AcceptExpressionVisitor(ExpressionVisitor* visitor) { 521 void StaticSet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
452 visitor->VisitStaticSet(this); 522 visitor->VisitStaticSet(this);
453 } 523 }
454 524
455 525
456 void StaticSet::VisitChildren(Visitor* visitor) { 526 void StaticSet::VisitChildren(Visitor* visitor) {
457 target()->AcceptReferenceVisitor(visitor);
458 expression()->AcceptExpressionVisitor(visitor); 527 expression()->AcceptExpressionVisitor(visitor);
459 } 528 }
460 529
461 530
462 Arguments::~Arguments() {} 531 Arguments::~Arguments() {}
463 532
464 533
465 void Arguments::AcceptTreeVisitor(TreeVisitor* visitor) { 534 void Arguments::AcceptTreeVisitor(TreeVisitor* visitor) {
466 visitor->VisitArguments(this); 535 visitor->VisitArguments(this);
467 } 536 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 575
507 576
508 void DirectMethodInvocation::AcceptExpressionVisitor( 577 void DirectMethodInvocation::AcceptExpressionVisitor(
509 ExpressionVisitor* visitor) { 578 ExpressionVisitor* visitor) {
510 visitor->VisitDirectMethodInvocation(this); 579 visitor->VisitDirectMethodInvocation(this);
511 } 580 }
512 581
513 582
514 void DirectMethodInvocation::VisitChildren(Visitor* visitor) { 583 void DirectMethodInvocation::VisitChildren(Visitor* visitor) {
515 receiver()->AcceptExpressionVisitor(visitor); 584 receiver()->AcceptExpressionVisitor(visitor);
516 visitor->VisitProcedureReference(target());
517 visitor->VisitArguments(arguments()); 585 visitor->VisitArguments(arguments());
518 } 586 }
519 587
520 588
521 StaticInvocation::~StaticInvocation() {} 589 StaticInvocation::~StaticInvocation() {}
522 590
523 591
524 void StaticInvocation::AcceptExpressionVisitor(ExpressionVisitor* visitor) { 592 void StaticInvocation::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
525 visitor->VisitStaticInvocation(this); 593 visitor->VisitStaticInvocation(this);
526 } 594 }
527 595
528 596
529 void StaticInvocation::VisitChildren(Visitor* visitor) { 597 void StaticInvocation::VisitChildren(Visitor* visitor) {
530 visitor->VisitProcedureReference(procedure());
531 visitor->VisitArguments(arguments()); 598 visitor->VisitArguments(arguments());
532 } 599 }
533 600
534 601
535 ConstructorInvocation::~ConstructorInvocation() {} 602 ConstructorInvocation::~ConstructorInvocation() {}
536 603
537 604
538 void ConstructorInvocation::AcceptExpressionVisitor( 605 void ConstructorInvocation::AcceptExpressionVisitor(
539 ExpressionVisitor* visitor) { 606 ExpressionVisitor* visitor) {
540 visitor->VisitConstructorInvocation(this); 607 visitor->VisitConstructorInvocation(this);
541 } 608 }
542 609
543 610
544 void ConstructorInvocation::VisitChildren(Visitor* visitor) { 611 void ConstructorInvocation::VisitChildren(Visitor* visitor) {
545 visitor->VisitConstructorReference(target());
546 visitor->VisitArguments(arguments()); 612 visitor->VisitArguments(arguments());
547 } 613 }
548 614
549 615
550 Not::~Not() {} 616 Not::~Not() {}
551 617
552 618
553 void Not::AcceptExpressionVisitor(ExpressionVisitor* visitor) { 619 void Not::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
554 visitor->VisitNot(this); 620 visitor->VisitNot(this);
555 } 621 }
(...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 1253
1188 InterfaceType::~InterfaceType() {} 1254 InterfaceType::~InterfaceType() {}
1189 1255
1190 1256
1191 void InterfaceType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) { 1257 void InterfaceType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) {
1192 visitor->VisitInterfaceType(this); 1258 visitor->VisitInterfaceType(this);
1193 } 1259 }
1194 1260
1195 1261
1196 void InterfaceType::VisitChildren(Visitor* visitor) { 1262 void InterfaceType::VisitChildren(Visitor* visitor) {
1197 klass()->AcceptReferenceVisitor(visitor);
1198 VisitList(&type_arguments(), visitor); 1263 VisitList(&type_arguments(), visitor);
1199 } 1264 }
1200 1265
1201 1266
1202 FunctionType::~FunctionType() {} 1267 FunctionType::~FunctionType() {}
1203 1268
1204 1269
1205 void FunctionType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) { 1270 void FunctionType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) {
1206 visitor->VisitFunctionType(this); 1271 visitor->VisitFunctionType(this);
1207 } 1272 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1251 } 1316 }
1252 1317
1253 1318
1254 void Program::AcceptTreeVisitor(TreeVisitor* visitor) { 1319 void Program::AcceptTreeVisitor(TreeVisitor* visitor) {
1255 visitor->VisitProgram(this); 1320 visitor->VisitProgram(this);
1256 } 1321 }
1257 1322
1258 1323
1259 void Program::VisitChildren(Visitor* visitor) { 1324 void Program::VisitChildren(Visitor* visitor) {
1260 VisitList(&libraries(), visitor); 1325 VisitList(&libraries(), visitor);
1261 visitor->VisitProcedureReference(main_method());
1262 } 1326 }
1263 1327
1264 1328
1265 } // namespace kernel 1329 } // namespace kernel
1266 1330
1267 } // namespace dart 1331 } // namespace dart
1268 #endif // !defined(DART_PRECOMPILED_RUNTIME) 1332 #endif // !defined(DART_PRECOMPILED_RUNTIME)
OLDNEW
« no previous file with comments | « runtime/vm/kernel.h ('k') | runtime/vm/kernel_binary.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698