| 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 file. |    3 // BSD-style license that can be found in the LICENSE file. | 
|    4  |    4  | 
|    5 library fasta.fasta_accessors; |    5 library fasta.fasta_accessors; | 
|    6  |    6  | 
|    7 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' |    7 import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' | 
|    8     show KernelArguments, KernelThisExpression; |    8     show KernelArguments, KernelComplexAssignment, KernelThisExpression; | 
|    9  |    9  | 
|   10 import 'package:front_end/src/fasta/kernel/utils.dart' show offsetForToken; |   10 import 'package:front_end/src/fasta/kernel/utils.dart' show offsetForToken; | 
|   11  |   11  | 
|   12 import 'package:front_end/src/scanner/token.dart' show Token; |   12 import 'package:front_end/src/scanner/token.dart' show Token; | 
|   13  |   13  | 
|   14 import 'frontend_accessors.dart' show Accessor; |   14 import 'frontend_accessors.dart' show Accessor; | 
|   15  |   15  | 
|   16 import 'package:front_end/src/fasta/type_inference/type_promotion.dart' |   16 import 'package:front_end/src/fasta/type_inference/type_promotion.dart' | 
|   17     show TypePromoter; |   17     show TypePromoter; | 
|   18  |   18  | 
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  183       int offset}) { |  183       int offset}) { | 
|  184     return helper.throwNoSuchMethodError(receiver, name ?? plainNameForWrite, |  184     return helper.throwNoSuchMethodError(receiver, name ?? plainNameForWrite, | 
|  185         arguments, offset ?? offsetForToken(this.token), |  185         arguments, offset ?? offsetForToken(this.token), | 
|  186         isGetter: isGetter, |  186         isGetter: isGetter, | 
|  187         isSetter: isSetter, |  187         isSetter: isSetter, | 
|  188         isSuper: isSuper, |  188         isSuper: isSuper, | 
|  189         isStatic: isStatic); |  189         isStatic: isStatic); | 
|  190   } |  190   } | 
|  191  |  191  | 
|  192   bool get isThisPropertyAccessor => false; |  192   bool get isThisPropertyAccessor => false; | 
 |  193  | 
 |  194   @override | 
 |  195   KernelComplexAssignment startComplexAssignment(Expression rhs) => null; | 
|  193 } |  196 } | 
|  194  |  197  | 
|  195 abstract class ErrorAccessor implements FastaAccessor { |  198 abstract class ErrorAccessor implements FastaAccessor { | 
|  196   /// Pass [arguments] that must be evaluated before throwing an error.  At |  199   /// Pass [arguments] that must be evaluated before throwing an error.  At | 
|  197   /// most one of [isGetter] and [isSetter] should be true and they're passed |  200   /// most one of [isGetter] and [isSetter] should be true and they're passed | 
|  198   /// to [BuilderHelper.buildThrowNoSuchMethodError] if it is used. |  201   /// to [BuilderHelper.buildThrowNoSuchMethodError] if it is used. | 
|  199   Expression buildError(Arguments arguments, |  202   Expression buildError(Arguments arguments, | 
|  200       {bool isGetter: false, bool isSetter: false, int offset}); |  203       {bool isGetter: false, bool isSetter: false, int offset}); | 
|  201  |  204  | 
|  202   Name get name => internalError("Unsupported operation."); |  205   Name get name => internalError("Unsupported operation."); | 
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  594       Expression index, |  597       Expression index, | 
|  595       Procedure getter, |  598       Procedure getter, | 
|  596       Procedure setter) { |  599       Procedure setter) { | 
|  597     if (receiver is ThisExpression) { |  600     if (receiver is ThisExpression) { | 
|  598       return new ThisIndexAccessor(helper, token, index, getter, setter); |  601       return new ThisIndexAccessor(helper, token, index, getter, setter); | 
|  599     } else { |  602     } else { | 
|  600       return new IndexAccessor.internal( |  603       return new IndexAccessor.internal( | 
|  601           helper, token, receiver, index, getter, setter); |  604           helper, token, receiver, index, getter, setter); | 
|  602     } |  605     } | 
|  603   } |  606   } | 
 |  607  | 
 |  608   @override | 
 |  609   KernelComplexAssignment startComplexAssignment(Expression rhs) => | 
 |  610       new KernelComplexAssignment() | 
 |  611         ..receiver = receiver | 
 |  612         ..index = index | 
 |  613         ..rhs = rhs; | 
|  604 } |  614 } | 
|  605  |  615  | 
|  606 class PropertyAccessor extends kernel.PropertyAccessor with FastaAccessor { |  616 class PropertyAccessor extends kernel.PropertyAccessor with FastaAccessor { | 
|  607   final BuilderHelper helper; |  617   final BuilderHelper helper; | 
|  608  |  618  | 
|  609   PropertyAccessor.internal(this.helper, Token token, Expression receiver, |  619   PropertyAccessor.internal(this.helper, Token token, Expression receiver, | 
|  610       Name name, Member getter, Member setter) |  620       Name name, Member getter, Member setter) | 
|  611       : super.internal(helper, receiver, name, getter, setter, token); |  621       : super.internal(helper, receiver, name, getter, setter, token); | 
|  612  |  622  | 
|  613   String get plainNameForRead => name.name; |  623   String get plainNameForRead => name.name; | 
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  971     offset ??= offsetForToken(this.token); |  981     offset ??= offsetForToken(this.token); | 
|  972     return helper.throwNoSuchMethodError(new NullLiteral()..fileOffset = offset, |  982     return helper.throwNoSuchMethodError(new NullLiteral()..fileOffset = offset, | 
|  973         plainNameForRead, arguments, offset, |  983         plainNameForRead, arguments, offset, | 
|  974         isGetter: isGetter, isSetter: isSetter); |  984         isGetter: isGetter, isSetter: isSetter); | 
|  975   } |  985   } | 
|  976 } |  986 } | 
|  977  |  987  | 
|  978 bool isFieldOrGetter(Member member) { |  988 bool isFieldOrGetter(Member member) { | 
|  979   return member is Field || (member is Procedure && member.isGetter); |  989   return member is Field || (member is Procedure && member.isGetter); | 
|  980 } |  990 } | 
| OLD | NEW |