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

Side by Side Diff: pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart

Issue 2978063002: Move parser helper classes to own files and clean them up. (Closed)
Patch Set: Don't use problems.dart in parser. Created 3 years, 5 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
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.formal_parameter_builder; 5 library fasta.formal_parameter_builder;
6 6
7 import '../parser/parser.dart' show FormalParameterType; 7 import '../parser.dart' show FormalParameterKind;
8
9 import '../parser/formal_parameter_kind.dart'
10 show
11 isMandatoryFormalParameterKind,
12 isOptionalNamedFormalParameterKind,
13 isOptionalPositionalFormalParameterKind;
8 14
9 import 'builder.dart' 15 import 'builder.dart'
10 show LibraryBuilder, MetadataBuilder, ModifierBuilder, TypeBuilder; 16 show LibraryBuilder, MetadataBuilder, ModifierBuilder, TypeBuilder;
11 17
12 abstract class FormalParameterBuilder<T extends TypeBuilder> 18 abstract class FormalParameterBuilder<T extends TypeBuilder>
13 extends ModifierBuilder { 19 extends ModifierBuilder {
14 @override 20 @override
15 final int charOffset; 21 final int charOffset;
16 22
17 final List<MetadataBuilder> metadata; 23 final List<MetadataBuilder> metadata;
18 24
19 final int modifiers; 25 final int modifiers;
20 26
21 final T type; 27 final T type;
22 28
23 final String name; 29 final String name;
24 30
25 /// True if this parameter is on the form `this.name`. 31 /// True if this parameter is on the form `this.name`.
26 final bool hasThis; 32 final bool hasThis;
27 33
28 FormalParameterType kind = FormalParameterType.REQUIRED; 34 FormalParameterKind kind = FormalParameterKind.mandatory;
29 35
30 FormalParameterBuilder(this.metadata, this.modifiers, this.type, this.name, 36 FormalParameterBuilder(this.metadata, this.modifiers, this.type, this.name,
31 this.hasThis, LibraryBuilder compilationUnit, this.charOffset) 37 this.hasThis, LibraryBuilder compilationUnit, this.charOffset)
32 : super(compilationUnit, charOffset); 38 : super(compilationUnit, charOffset);
33 39
34 String get debugName => "FormalParameterBuilder"; 40 String get debugName => "FormalParameterBuilder";
35 41
36 bool get isRequired => kind.isRequired; 42 bool get isRequired => isMandatoryFormalParameterKind(kind);
37 43
38 bool get isPositional => kind.isPositional || kind.isRequired; 44 bool get isPositional {
45 return isOptionalPositionalFormalParameterKind(kind) ||
46 isMandatoryFormalParameterKind(kind);
47 }
39 48
40 bool get isNamed => kind.isNamed; 49 bool get isNamed => isOptionalNamedFormalParameterKind(kind);
41 50
42 bool get isOptional => !isRequired; 51 bool get isOptional => !isRequired;
43 52
44 bool get isLocal => true; 53 bool get isLocal => true;
45 54
46 @override 55 @override
47 String get fullNameForErrors => name; 56 String get fullNameForErrors => name;
48 57
49 FormalParameterBuilder forFormalParameterInitializerScope(); 58 FormalParameterBuilder forFormalParameterInitializerScope();
50 } 59 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/parser/node_listener.dart ('k') | pkg/front_end/lib/src/fasta/kernel/body_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698