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

Side by Side Diff: pkg/compiler/lib/src/ssa/builder_kernel.dart

Issue 2884233002: Use entities in runtime_types (Closed)
Patch Set: Remove debug print 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 import 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 6
7 import '../closure.dart'; 7 import '../closure.dart';
8 import '../common.dart'; 8 import '../common.dart';
9 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; 9 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem;
10 import '../common/names.dart'; 10 import '../common/names.dart';
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 /// Extend current method parameters with parameters for the class type 222 /// Extend current method parameters with parameters for the class type
223 /// parameters. If the class has type parameters but does not need them, bind 223 /// parameters. If the class has type parameters but does not need them, bind
224 /// to `dynamic` (represented as `null`) so the bindings are available for 224 /// to `dynamic` (represented as `null`) so the bindings are available for
225 /// building types up the inheritance chain of generative constructors. 225 /// building types up the inheritance chain of generative constructors.
226 void _addClassTypeVariablesIfNeeded(ir.Member constructor) { 226 void _addClassTypeVariablesIfNeeded(ir.Member constructor) {
227 var enclosing = constructor.enclosingClass; 227 var enclosing = constructor.enclosingClass;
228 bool needParameters; 228 bool needParameters;
229 enclosing.typeParameters.forEach((ir.TypeParameter typeParameter) { 229 enclosing.typeParameters.forEach((ir.TypeParameter typeParameter) {
230 var typeParamElement = astAdapter.getElement(typeParameter); 230 var typeParamElement = astAdapter.getElement(typeParameter);
231 HInstruction param; 231 HInstruction param;
232 needParameters ??= 232 needParameters ??= rtiNeed.classNeedsRti(astAdapter.getClass(enclosing));
233 rtiNeed.classNeedsRti(astAdapter.getElement(enclosing));
234 if (needParameters) { 233 if (needParameters) {
235 param = addParameter(typeParamElement, commonMasks.nonNullType); 234 param = addParameter(typeParamElement, commonMasks.nonNullType);
236 } else { 235 } else {
237 // Unused, so bind to `dynamic`. 236 // Unused, so bind to `dynamic`.
238 param = graph.addConstantNull(closedWorld); 237 param = graph.addConstantNull(closedWorld);
239 } 238 }
240 // This is a little bit wacky (and n^2) until we make the localsHandler 239 // This is a little bit wacky (and n^2) until we make the localsHandler
241 // take Kernel DartTypes instead of just the AST DartTypes. 240 // take Kernel DartTypes instead of just the AST DartTypes.
242 var typeVariableType = astAdapter 241 var typeVariableType = astAdapter
243 .getClass(enclosing) 242 .getClass(enclosing)
(...skipping 3170 matching lines...) Expand 10 before | Expand all | Expand 10 after
3414 enterBlock.setBlockFlow( 3413 enterBlock.setBlockFlow(
3415 new HTryBlockInformation( 3414 new HTryBlockInformation(
3416 kernelBuilder.wrapStatementGraph(bodyGraph), 3415 kernelBuilder.wrapStatementGraph(bodyGraph),
3417 exception, 3416 exception,
3418 kernelBuilder.wrapStatementGraph(catchGraph), 3417 kernelBuilder.wrapStatementGraph(catchGraph),
3419 kernelBuilder.wrapStatementGraph(finallyGraph)), 3418 kernelBuilder.wrapStatementGraph(finallyGraph)),
3420 exitBlock); 3419 exitBlock);
3421 kernelBuilder.inTryStatement = previouslyInTryStatement; 3420 kernelBuilder.inTryStatement = previouslyInTryStatement;
3422 } 3421 }
3423 } 3422 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698