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 |