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

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

Issue 2479323003: Adding check or trust type checks to builder_kernel.dart. (Closed)
Patch Set: .. Created 4 years, 1 month 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 | « pkg/compiler/lib/src/ssa/graph_builder.dart ('k') | pkg/compiler/lib/src/ssa/type_builder.dart » ('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 import 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 6
7 import '../constants/expressions.dart'; 7 import '../constants/expressions.dart';
8 import '../common.dart'; 8 import '../common.dart';
9 import '../common/names.dart'; 9 import '../common/names.dart';
10 import '../compiler.dart'; 10 import '../compiler.dart';
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 243
244 bool isIntercepted(ir.Node node) { 244 bool isIntercepted(ir.Node node) {
245 Selector selector = getSelector(node); 245 Selector selector = getSelector(node);
246 return _backend.isInterceptedSelector(selector); 246 return _backend.isInterceptedSelector(selector);
247 } 247 }
248 248
249 bool isInterceptedSelector(Selector selector) { 249 bool isInterceptedSelector(Selector selector) {
250 return _backend.isInterceptedSelector(selector); 250 return _backend.isInterceptedSelector(selector);
251 } 251 }
252 252
253 LibraryElement get jsHelperLibrary => _backend.helpers.jsHelperLibrary;
254
253 JumpTarget getTargetDefinition(ir.Node node) => 255 JumpTarget getTargetDefinition(ir.Node node) =>
254 elements.getTargetDefinition(getNode(node)); 256 elements.getTargetDefinition(getNode(node));
255 257
256 ir.Procedure get mapLiteralConstructor => 258 ir.Procedure get mapLiteralConstructor =>
257 kernel.functions[_backend.helpers.mapLiteralConstructor]; 259 kernel.functions[_backend.helpers.mapLiteralConstructor];
258 260
259 ir.Procedure get mapLiteralConstructorEmpty => 261 ir.Procedure get mapLiteralConstructorEmpty =>
260 kernel.functions[_backend.helpers.mapLiteralConstructorEmpty]; 262 kernel.functions[_backend.helpers.mapLiteralConstructorEmpty];
261 263
262 MemberElement get jsIndexableLength => _backend.helpers.jsIndexableLength; 264 MemberElement get jsIndexableLength => _backend.helpers.jsIndexableLength;
(...skipping 23 matching lines...) Expand all
286 .inferredReturnTypeForElement(_backend.helpers.assertThrow, _compiler); 288 .inferredReturnTypeForElement(_backend.helpers.assertThrow, _compiler);
287 289
288 DartType getDartType(ir.DartType type) { 290 DartType getDartType(ir.DartType type) {
289 return type.accept(_typeConverter); 291 return type.accept(_typeConverter);
290 } 292 }
291 293
292 List<DartType> getDartTypes(List<ir.DartType> types) { 294 List<DartType> getDartTypes(List<ir.DartType> types) {
293 return types.map(getDartType).toList(); 295 return types.map(getDartType).toList();
294 } 296 }
295 297
298 DartType getFunctionReturnType(ir.FunctionNode node) {
299 return getDartType(node.returnType);
300 }
301
296 /// Computes the function type corresponding the signature of [node]. 302 /// Computes the function type corresponding the signature of [node].
297 FunctionType getFunctionType(ir.FunctionNode node) { 303 FunctionType getFunctionType(ir.FunctionNode node) {
298 DartType returnType = getDartType(node.returnType); 304 DartType returnType = getFunctionReturnType(node);
299 List<DartType> parameterTypes = <DartType>[]; 305 List<DartType> parameterTypes = <DartType>[];
300 List<DartType> optionalParameterTypes = <DartType>[]; 306 List<DartType> optionalParameterTypes = <DartType>[];
301 for (ir.VariableDeclaration variable in node.positionalParameters) { 307 for (ir.VariableDeclaration variable in node.positionalParameters) {
302 if (parameterTypes.length == node.requiredParameterCount) { 308 if (parameterTypes.length == node.requiredParameterCount) {
303 optionalParameterTypes.add(getDartType(variable.type)); 309 optionalParameterTypes.add(getDartType(variable.type));
304 } else { 310 } else {
305 parameterTypes.add(getDartType(variable.type)); 311 parameterTypes.add(getDartType(variable.type));
306 } 312 }
307 } 313 }
308 List<String> namedParameters = <String>[]; 314 List<String> namedParameters = <String>[];
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 astAdapter.reporter.internalError( 672 astAdapter.reporter.internalError(
667 CURRENT_ELEMENT_SPANNABLE, "Unexpected constant target: $element."); 673 CURRENT_ELEMENT_SPANNABLE, "Unexpected constant target: $element.");
668 return null; 674 return null;
669 } 675 }
670 676
671 @override 677 @override
672 ConstantExpression visitStringLiteral(ir.StringLiteral node) { 678 ConstantExpression visitStringLiteral(ir.StringLiteral node) {
673 return new StringConstantExpression(node.value); 679 return new StringConstantExpression(node.value);
674 } 680 }
675 } 681 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/ssa/graph_builder.dart ('k') | pkg/compiler/lib/src/ssa/type_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698