Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Side by Side Diff: pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart

Issue 2799783004: Implement various getters on DillMember. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | runtime/observatory/tests/service/service_kernel.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 }
OLDNEW
« no previous file with comments | « no previous file | runtime/observatory/tests/service/service_kernel.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698