| 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 |