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

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/kernel_outline_shaker.dart

Issue 2890933002: Use LibraryIndex in CoreTypes instead of extending it. (Closed)
Patch Set: Make everything lazy in CoreTypes. Created 3 years, 7 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
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 /// A transformation to create a self-contained modular kernel without 5 /// A transformation to create a self-contained modular kernel without
6 /// unnecessary references to other libraries. 6 /// unnecessary references to other libraries.
7 library fasta.kernel.kernel_outline_shaker; 7 library fasta.kernel.kernel_outline_shaker;
8 8
9 import 'package:kernel/ast.dart'; 9 import 'package:kernel/ast.dart';
10 import 'package:kernel/core_types.dart'; 10 import 'package:kernel/core_types.dart';
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 data.markClass(coreTypes.mapClass); 195 data.markClass(coreTypes.mapClass);
196 data.markClass(coreTypes.iterableClass); 196 data.markClass(coreTypes.iterableClass);
197 data.markClass(coreTypes.iteratorClass); 197 data.markClass(coreTypes.iteratorClass);
198 data.markClass(coreTypes.futureClass); 198 data.markClass(coreTypes.futureClass);
199 data.markClass(coreTypes.streamClass); 199 data.markClass(coreTypes.streamClass);
200 data.markClass(coreTypes.symbolClass); 200 data.markClass(coreTypes.symbolClass);
201 data.markClass(coreTypes.internalSymbolClass); 201 data.markClass(coreTypes.internalSymbolClass);
202 data.markClass(coreTypes.typeClass); 202 data.markClass(coreTypes.typeClass);
203 data.markClass(coreTypes.functionClass); 203 data.markClass(coreTypes.functionClass);
204 data.markClass(coreTypes.invocationClass); 204 data.markClass(coreTypes.invocationClass);
205 data.markMember(coreTypes.getMember("dart:_internal", "ExternalName", "")); 205 data.markMember(coreTypes.externalNameDefaultConstructor);
206 206
207 // These are needed by the continuation (async/await) transformer: 207 // These are needed by the continuation (async/await) transformer:
208 data.markClass(coreTypes.getClass('dart:core', 'Iterator')); 208 data.markClass(coreTypes.iteratorClass);
209 data.markClass(coreTypes.getClass('dart:async', 'Future')); 209 data.markClass(coreTypes.futureClass);
210 data.markClass(coreTypes.getClass('dart:async', 'FutureOr')); 210 data.markClass(coreTypes.futureOrClass);
211 data.markClass(coreTypes.getClass('dart:async', 'Completer')); 211 data.markClass(coreTypes.completerClass);
212 data.markMember(coreTypes.getMember('dart:async', 'Completer', 'sync')); 212 data.markMember(coreTypes.completerSyncConstructor);
213 data.markMember(coreTypes.getMember('dart:core', '_SyncIterable', '')); 213 data.markMember(coreTypes.syncIterableDefaultConstructor);
214 data.markMember(coreTypes.getMember('dart:async', '_StreamIterator', '')); 214 data.markMember(coreTypes.streamIteratorDefaultConstructor);
215 data.markMember(coreTypes.getMember('dart:async', 'Future', 'microtask')); 215 data.markMember(coreTypes.futureMicrotaskConstructor);
216 data.markMember( 216 data.markMember(coreTypes.asyncStarStreamControllerDefaultConstructor);
217 coreTypes.getMember('dart:async', '_AsyncStarStreamController', '')); 217 data.markMember(coreTypes.printProcedure);
218 data.markMember(coreTypes.getTopLevelMember('dart:core', 'print')); 218 data.markMember(coreTypes.asyncThenWrapperHelperProcedure);
219 data.markMember( 219 data.markMember(coreTypes.asyncErrorWrapperHelperProcedure);
220 coreTypes.getTopLevelMember('dart:async', '_asyncThenWrapperHelper')); 220 data.markMember(coreTypes.awaitHelperProcedure);
221 data.markMember(
222 coreTypes.getTopLevelMember('dart:async', '_asyncErrorWrapperHelper'));
223 data.markMember(coreTypes.getTopLevelMember('dart:async', '_awaitHelper'));
224 221
225 // These are needed by the mixin transformer 222 // These are needed by the mixin transformer
226 data.markMember(coreTypes.getMember('dart:core', '_InvocationMirror', '')); 223 data.markMember(coreTypes.invocationMirrorDefaultConstructor);
227 data.markMember(coreTypes.getMember('dart:core', 'List', 'from')); 224 data.markMember(coreTypes.listFromConstructor);
228 } 225 }
229 226
230 visitConstructor(Constructor node) { 227 visitConstructor(Constructor node) {
231 if (!node.initializers.any((i) => i is SuperInitializer)) { 228 if (!node.initializers.any((i) => i is SuperInitializer)) {
232 // super() is currently implicit. 229 // super() is currently implicit.
233 for (var ctor in node.enclosingClass.supertype.classNode.constructors) { 230 for (var ctor in node.enclosingClass.supertype.classNode.constructors) {
234 if (ctor.name.name == '') data.markMember(ctor); 231 if (ctor.name.name == '') data.markMember(ctor);
235 } 232 }
236 } 233 }
237 node.visitChildren(this); 234 node.visitChildren(this);
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 /// Types appear to be encoded directly, so we have no need to preserve 394 /// Types appear to be encoded directly, so we have no need to preserve
398 /// typedefs. 395 /// typedefs.
399 // TODO(sigmund): revisit if this is not the case, the `inputError` in 396 // TODO(sigmund): revisit if this is not the case, the `inputError` in
400 // [RootsMarker] is meant to detect this. 397 // [RootsMarker] is meant to detect this.
401 Typedef visitTypedef(Typedef node) => null; 398 Typedef visitTypedef(Typedef node) => null;
402 399
403 TreeNode defaultTreeNode(TreeNode node) => node; 400 TreeNode defaultTreeNode(TreeNode node) => node;
404 } 401 }
405 402
406 typedef bool Filter(Uri uri); 403 typedef bool Filter(Uri uri);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698