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

Side by Side Diff: pkg/front_end/lib/src/fasta/parser/identifier_context.dart

Issue 2876813002: Implement generalized function types. (Closed)
Patch Set: Address comments. Created 3 years, 7 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) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 /// Information about the parser state which is passed to the listener at the 5 /// Information about the parser state which is passed to the listener at the
6 /// time an identifier is encountered. 6 /// time an identifier is encountered.
7 /// 7 ///
8 /// This can be used by the listener to determine the context in which the 8 /// This can be used by the listener to determine the context in which the
9 /// identifier appears; that in turn can help the listener decide how to resolve 9 /// identifier appears; that in turn can help the listener decide how to resolve
10 /// the identifier (if the listener is doing resolution). 10 /// the identifier (if the listener is doing resolution).
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 static const classDeclaration = const IdentifierContext._('classDeclaration', 106 static const classDeclaration = const IdentifierContext._('classDeclaration',
107 inDeclaration: true, isBuiltInIdentifierAllowed: false); 107 inDeclaration: true, isBuiltInIdentifierAllowed: false);
108 108
109 /// Identifier is the name of a type variable being declared (e.g. `Foo` in 109 /// Identifier is the name of a type variable being declared (e.g. `Foo` in
110 /// `class C<Foo extends num> {}`). 110 /// `class C<Foo extends num> {}`).
111 static const typeVariableDeclaration = const IdentifierContext._( 111 static const typeVariableDeclaration = const IdentifierContext._(
112 'typeVariableDeclaration', 112 'typeVariableDeclaration',
113 inDeclaration: true, 113 inDeclaration: true,
114 isBuiltInIdentifierAllowed: false); 114 isBuiltInIdentifierAllowed: false);
115 115
116 /// Identifier is the start of a reference to a type that starts with prefix.
117 static const prefixedTypeReference = const IdentifierContext._(
118 'prefixedTypeReference',
119 isScopeReference: true,
120 isBuiltInIdentifierAllowed: true);
121
116 /// Identifier is the start of a reference to a type declared elsewhere. 122 /// Identifier is the start of a reference to a type declared elsewhere.
117 static const typeReference = const IdentifierContext._('typeReference', 123 static const typeReference = const IdentifierContext._('typeReference',
118 isScopeReference: true, isBuiltInIdentifierAllowed: false); 124 isScopeReference: true, isBuiltInIdentifierAllowed: false);
119 125
120 /// Identifier is part of a reference to a type declared elsewhere, but it's 126 /// Identifier is part of a reference to a type declared elsewhere, but it's
121 /// not the first identifier of the reference. 127 /// not the first identifier of the reference.
122 static const typeReferenceContinuation = const IdentifierContext._( 128 static const typeReferenceContinuation = const IdentifierContext._(
123 'typeReferenceContinuation', 129 'typeReferenceContinuation',
124 isContinuation: true, 130 isContinuation: true,
125 isBuiltInIdentifierAllowed: false); 131 isBuiltInIdentifierAllowed: false);
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 bool allowedInConstantExpression}) 295 bool allowedInConstantExpression})
290 : this.allowedInConstantExpression = 296 : this.allowedInConstantExpression =
291 // Generally, declarations are legal in constant expressions. A 297 // Generally, declarations are legal in constant expressions. A
292 // continuation doesn't affect constant expressions: if what it's 298 // continuation doesn't affect constant expressions: if what it's
293 // continuing is a problem, it has already been reported. 299 // continuing is a problem, it has already been reported.
294 allowedInConstantExpression ?? 300 allowedInConstantExpression ??
295 (inDeclaration || isContinuation || inSymbol); 301 (inDeclaration || isContinuation || inSymbol);
296 302
297 String toString() => _name; 303 String toString() => _name;
298 } 304 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/parser.dart ('k') | pkg/front_end/lib/src/fasta/parser/listener.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698