| 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 import 'package:kernel/frontend/accessors.dart' as ir_accessors; | 6 import 'package:kernel/frontend/accessors.dart' as ir_accessors; |
| 7 | 7 |
| 8 import 'kernel.dart' show Kernel; | 8 import 'kernel.dart' show Kernel; |
| 9 import 'unresolved.dart' show UnresolvedVisitor; | 9 import 'unresolved.dart' show UnresolvedVisitor; |
| 10 | 10 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 kernel.getUnresolvedStaticSetterBuilder(), | 70 kernel.getUnresolvedStaticSetterBuilder(), |
| 71 new ir.NullLiteral(), | 71 new ir.NullLiteral(), |
| 72 name, | 72 name, |
| 73 new ir.Arguments(<ir.Expression>[value])); | 73 new ir.Arguments(<ir.Expression>[value])); |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 | 76 |
| 77 class SuperPropertyAccessor extends ir_accessors.SuperPropertyAccessor { | 77 class SuperPropertyAccessor extends ir_accessors.SuperPropertyAccessor { |
| 78 final UnresolvedVisitor builder; | 78 final UnresolvedVisitor builder; |
| 79 | 79 |
| 80 /// Name of the property attempted to be accessed, used to generate an | |
| 81 /// error if unresolved. | |
| 82 final String name; | |
| 83 | |
| 84 SuperPropertyAccessor( | 80 SuperPropertyAccessor( |
| 85 this.builder, this.name, ir.Member readTarget, ir.Member writeTarget) | 81 this.builder, ir.Name name, ir.Member getter, ir.Member setter) |
| 86 : super(readTarget, writeTarget); | 82 : super(name, getter, setter); |
| 87 | 83 |
| 88 @override | 84 @override |
| 89 makeInvalidRead() { | 85 makeInvalidRead() { |
| 90 // TODO(asgerf): Technically, we should invoke 'super.noSuchMethod' for | 86 // TODO(asgerf): Technically, we should invoke 'super.noSuchMethod' for |
| 91 // this and the other invalid super cases. | 87 // this and the other invalid super cases. |
| 92 return builder.buildThrowUnresolvedSuperGetter(name); | 88 return builder.buildThrowUnresolvedSuperGetter(name.name); |
| 93 } | 89 } |
| 94 | 90 |
| 95 @override | 91 @override |
| 96 makeInvalidWrite(ir.Expression value) { | 92 makeInvalidWrite(ir.Expression value) { |
| 97 return builder.buildThrowUnresolvedSuperSetter(name, value); | 93 return builder.buildThrowUnresolvedSuperSetter(name.name, value); |
| 98 } | 94 } |
| 99 } | 95 } |
| 100 | 96 |
| 101 class SuperIndexAccessor extends ir_accessors.SuperIndexAccessor { | 97 class SuperIndexAccessor extends ir_accessors.SuperIndexAccessor { |
| 102 final UnresolvedVisitor builder; | 98 final UnresolvedVisitor builder; |
| 103 | 99 |
| 104 Kernel get kernel => builder.kernel; | 100 Kernel get kernel => builder.kernel; |
| 105 | 101 |
| 106 SuperIndexAccessor(this.builder, ir.Expression index, ir.Member readTarget, | 102 SuperIndexAccessor( |
| 107 ir.Member writeTarget) | 103 this.builder, ir.Expression index, ir.Member getter, ir.Member setter) |
| 108 : super(index, readTarget, writeTarget); | 104 : super(index, getter, setter); |
| 109 | 105 |
| 110 @override | 106 @override |
| 111 makeInvalidRead() { | 107 makeInvalidRead() { |
| 112 return builder.buildThrowNoSuchMethodError( | 108 return builder.buildThrowNoSuchMethodError( |
| 113 kernel.getUnresolvedSuperMethodBuilder(), | 109 kernel.getUnresolvedSuperMethodBuilder(), |
| 114 new ir.ThisExpression(), | 110 new ir.ThisExpression(), |
| 115 '[]', | 111 '[]', |
| 116 new ir.Arguments(<ir.Expression>[indexAccess()])); | 112 new ir.Arguments(<ir.Expression>[indexAccess()])); |
| 117 } | 113 } |
| 118 | 114 |
| 119 @override | 115 @override |
| 120 makeInvalidWrite(ir.Expression value) { | 116 makeInvalidWrite(ir.Expression value) { |
| 121 return builder.buildThrowNoSuchMethodError( | 117 return builder.buildThrowNoSuchMethodError( |
| 122 kernel.getUnresolvedSuperMethodBuilder(), | 118 kernel.getUnresolvedSuperMethodBuilder(), |
| 123 new ir.ThisExpression(), | 119 new ir.ThisExpression(), |
| 124 '[]=', | 120 '[]=', |
| 125 new ir.Arguments(<ir.Expression>[indexAccess(), value])); | 121 new ir.Arguments(<ir.Expression>[indexAccess(), value])); |
| 126 } | 122 } |
| 127 } | 123 } |
| OLD | NEW |