| 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.dill_member_builder; | 5 library fasta.dill_member_builder; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' | 7 import 'package:kernel/ast.dart' |
| 8 show Constructor, Field, Member, Procedure, ProcedureKind; | 8 show Constructor, Field, Member, Procedure, ProcedureKind; |
| 9 | 9 |
| 10 import '../errors.dart' show internalError; | 10 import '../errors.dart' show internalError; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 : modifiers = computeModifiers(member), | 23 : modifiers = computeModifiers(member), |
| 24 member = member, | 24 member = member, |
| 25 super(parent, member.fileOffset); | 25 super(parent, member.fileOffset); |
| 26 | 26 |
| 27 Member get target => member; | 27 Member get target => member; |
| 28 | 28 |
| 29 String get name => member.name.name; | 29 String get name => member.name.name; |
| 30 | 30 |
| 31 bool get isConstructor => member is Constructor; | 31 bool get isConstructor => member is Constructor; |
| 32 | 32 |
| 33 bool get isFactory { | 33 ProcedureKind get kind { |
| 34 if (member is Procedure) { | 34 final member = this.member; |
| 35 Procedure procedure = member; | 35 return member is Procedure ? member.kind : null; |
| 36 return procedure.kind == ProcedureKind.Factory; | |
| 37 } else { | |
| 38 return false; | |
| 39 } | |
| 40 } | 36 } |
| 37 |
| 38 bool get isRegularMethod => identical(ProcedureKind.Method, kind); |
| 39 |
| 40 bool get isGetter => identical(ProcedureKind.Getter, kind); |
| 41 |
| 42 bool get isSetter => identical(ProcedureKind.Setter, kind); |
| 43 |
| 44 bool get isOperator => identical(ProcedureKind.Operator, kind); |
| 45 |
| 46 bool get isFactory => identical(ProcedureKind.Factory, kind); |
| 41 } | 47 } |
| 42 | 48 |
| 43 int computeModifiers(Member member) { | 49 int computeModifiers(Member member) { |
| 44 int modifier = member.isAbstract ? abstractMask : 0; | 50 int modifier = member.isAbstract ? abstractMask : 0; |
| 45 modifier |= member.isExternal ? externalMask : 0; | 51 modifier |= member.isExternal ? externalMask : 0; |
| 46 if (member is Field) { | 52 if (member is Field) { |
| 47 modifier |= member.isConst ? constMask : 0; | 53 modifier |= member.isConst ? constMask : 0; |
| 48 modifier |= member.isFinal ? finalMask : 0; | 54 modifier |= member.isFinal ? finalMask : 0; |
| 49 modifier |= member.isStatic ? staticMask : 0; | 55 modifier |= member.isStatic ? staticMask : 0; |
| 50 } else if (member is Procedure) { | 56 } else if (member is Procedure) { |
| 51 modifier |= member.isConst ? constMask : 0; | 57 modifier |= member.isConst ? constMask : 0; |
| 52 modifier |= member.isStatic ? staticMask : 0; | 58 modifier |= member.isStatic ? staticMask : 0; |
| 53 } else if (member is Constructor) { | 59 } else if (member is Constructor) { |
| 54 modifier |= member.isConst ? constMask : 0; | 60 modifier |= member.isConst ? constMask : 0; |
| 55 } else { | 61 } else { |
| 56 internalError("Unhandled: ${member.runtimeType}"); | 62 internalError("Unhandled: ${member.runtimeType}"); |
| 57 } | 63 } |
| 58 return modifier; | 64 return modifier; |
| 59 } | 65 } |
| OLD | NEW |