OLD | NEW |
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.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
4 | 4 |
5 import 'package:kernel/ast.dart' as ir; | 5 import 'package:kernel/ast.dart' as ir; |
6 | 6 |
7 import "../dart_types.dart" show DartType, InterfaceType; | 7 import "../dart_types.dart" show DartType, InterfaceType; |
8 import "../elements/elements.dart" | 8 import "../elements/elements.dart" |
9 show | 9 show |
10 AstElement, | 10 AstElement, |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 var accessor = new ClassStaticAccessor( | 265 var accessor = new ClassStaticAccessor( |
266 this, getter.name, possiblyErroneousFunctionToIr(getter), null); | 266 this, getter.name, possiblyErroneousFunctionToIr(getter), null); |
267 return accessor.buildPrefixIncrement(new ir.Name(operator.selectorName), | 267 return accessor.buildPrefixIncrement(new ir.Name(operator.selectorName), |
268 voidContext: isVoidContext); | 268 voidContext: isVoidContext); |
269 } | 269 } |
270 | 270 |
271 ir.Expression visitUnresolvedStaticSetterSetIfNull( | 271 ir.Expression visitUnresolvedStaticSetterSetIfNull( |
272 Send node, MethodElement getter, Element element, Node rhs, _) { | 272 Send node, MethodElement getter, Element element, Node rhs, _) { |
273 var accessor = new ClassStaticAccessor( | 273 var accessor = new ClassStaticAccessor( |
274 this, getter.name, possiblyErroneousFunctionToIr(getter), null); | 274 this, getter.name, possiblyErroneousFunctionToIr(getter), null); |
275 return accessor.buildNullAwareAssignment(visitForValue(rhs), null, | 275 return accessor.buildNullAwareAssignment(visitForValue(rhs), |
276 voidContext: isVoidContext); | 276 voidContext: isVoidContext); |
277 } | 277 } |
278 | 278 |
279 ir.Expression visitUnresolvedSuperBinary( | 279 ir.Expression visitUnresolvedSuperBinary( |
280 Send node, Element element, BinaryOperator operator, Node argument, _) { | 280 Send node, Element element, BinaryOperator operator, Node argument, _) { |
281 return buildThrowNoSuchMethodError( | 281 return buildThrowNoSuchMethodError( |
282 kernel.getUnresolvedSuperMethodBuilder(), | 282 kernel.getUnresolvedSuperMethodBuilder(), |
283 new ir.ThisExpression(), | 283 new ir.ThisExpression(), |
284 operator.selectorName, | 284 operator.selectorName, |
285 new ir.Arguments(<ir.Expression>[visitForValue(argument)])); | 285 new ir.Arguments(<ir.Expression>[visitForValue(argument)])); |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 | 450 |
451 ir.Expression visitUnresolvedSuperSetterPrefix(Send node, | 451 ir.Expression visitUnresolvedSuperSetterPrefix(Send node, |
452 MethodElement getter, Element element, IncDecOperator operator, _) { | 452 MethodElement getter, Element element, IncDecOperator operator, _) { |
453 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) | 453 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) |
454 .buildPrefixIncrement(new ir.Name(operator.selectorName)); | 454 .buildPrefixIncrement(new ir.Name(operator.selectorName)); |
455 } | 455 } |
456 | 456 |
457 ir.Expression visitUnresolvedSuperSetterSetIfNull( | 457 ir.Expression visitUnresolvedSuperSetterSetIfNull( |
458 Send node, MethodElement getter, Element element, Node rhs, _) { | 458 Send node, MethodElement getter, Element element, Node rhs, _) { |
459 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) | 459 return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter) |
460 .buildNullAwareAssignment(visitForValue(rhs), null); | 460 .buildNullAwareAssignment(visitForValue(rhs)); |
461 } | 461 } |
462 | 462 |
463 ir.Expression visitUnresolvedSuperUnary( | 463 ir.Expression visitUnresolvedSuperUnary( |
464 Send node, UnaryOperator operator, Element element, _) { | 464 Send node, UnaryOperator operator, Element element, _) { |
465 // TODO(asgerf): Should really call 'super.noSuchMethod'. | 465 // TODO(asgerf): Should really call 'super.noSuchMethod'. |
466 return buildThrowNoSuchMethodError( | 466 return buildThrowNoSuchMethodError( |
467 kernel.getUnresolvedSuperMethodBuilder(), | 467 kernel.getUnresolvedSuperMethodBuilder(), |
468 new ir.ThisExpression(), | 468 new ir.ThisExpression(), |
469 operator.selectorName, | 469 operator.selectorName, |
470 new ir.Arguments.empty()); | 470 new ir.Arguments.empty()); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
526 var accessor = new TopLevelStaticAccessor( | 526 var accessor = new TopLevelStaticAccessor( |
527 this, getter.name, possiblyErroneousFunctionToIr(getter), null); | 527 this, getter.name, possiblyErroneousFunctionToIr(getter), null); |
528 return accessor.buildPrefixIncrement(new ir.Name(operator.selectorName), | 528 return accessor.buildPrefixIncrement(new ir.Name(operator.selectorName), |
529 voidContext: isVoidContext); | 529 voidContext: isVoidContext); |
530 } | 530 } |
531 | 531 |
532 ir.Expression visitUnresolvedTopLevelSetterSetIfNull( | 532 ir.Expression visitUnresolvedTopLevelSetterSetIfNull( |
533 Send node, MethodElement getter, Element element, Node rhs, _) { | 533 Send node, MethodElement getter, Element element, Node rhs, _) { |
534 var accessor = new TopLevelStaticAccessor( | 534 var accessor = new TopLevelStaticAccessor( |
535 this, getter.name, possiblyErroneousFunctionToIr(getter), null); | 535 this, getter.name, possiblyErroneousFunctionToIr(getter), null); |
536 return accessor.buildNullAwareAssignment(visitForValue(rhs), null, | 536 return accessor.buildNullAwareAssignment(visitForValue(rhs), |
537 voidContext: isVoidContext); | 537 voidContext: isVoidContext); |
538 } | 538 } |
539 | 539 |
540 ir.Expression visitUnresolvedSuperGetterIndexSetIfNull(Send node, | 540 ir.Expression visitUnresolvedSuperGetterIndexSetIfNull(Send node, |
541 Element element, MethodElement setter, Node index, Node rhs, _) { | 541 Element element, MethodElement setter, Node index, Node rhs, _) { |
542 return buildUnresolvedSuperIndexAccessor(index, element) | 542 return buildUnresolvedSuperIndexAccessor(index, element) |
543 .buildNullAwareAssignment(visitForValue(rhs), null); | 543 .buildNullAwareAssignment(visitForValue(rhs)); |
544 } | 544 } |
545 | 545 |
546 ir.Expression visitUnresolvedSuperSetterIndexSetIfNull(Send node, | 546 ir.Expression visitUnresolvedSuperSetterIndexSetIfNull(Send node, |
547 MethodElement getter, Element element, Node index, Node rhs, _) { | 547 MethodElement getter, Element element, Node index, Node rhs, _) { |
548 return buildUnresolvedSuperIndexAccessor(index, element) | 548 return buildUnresolvedSuperIndexAccessor(index, element) |
549 .buildNullAwareAssignment(visitForValue(rhs), null); | 549 .buildNullAwareAssignment(visitForValue(rhs)); |
550 } | 550 } |
551 | 551 |
552 ir.Expression visitUnresolvedSuperIndexSetIfNull( | 552 ir.Expression visitUnresolvedSuperIndexSetIfNull( |
553 Send node, Element element, Node index, Node rhs, _) { | 553 Send node, Element element, Node index, Node rhs, _) { |
554 return buildUnresolvedSuperIndexAccessor(index, element) | 554 return buildUnresolvedSuperIndexAccessor(index, element) |
555 .buildNullAwareAssignment(visitForValue(rhs), null); | 555 .buildNullAwareAssignment(visitForValue(rhs)); |
556 } | 556 } |
557 | 557 |
558 ir.Expression visitUnresolvedSuperSet( | 558 ir.Expression visitUnresolvedSuperSet( |
559 Send node, Element element, Node rhs, _) { | 559 Send node, Element element, Node rhs, _) { |
560 return buildThrowUnresolvedSuperSetter( | 560 return buildThrowUnresolvedSuperSetter( |
561 '${node.selector}', visitForValue(rhs)); | 561 '${node.selector}', visitForValue(rhs)); |
562 } | 562 } |
563 } | 563 } |
OLD | NEW |