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

Unified Diff: frog/parser.dart

Issue 8849001: frog: use type annotation in map and list literals (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: '' Created 9 years 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 side-by-side diff with in-line comments
Download patch
Index: frog/parser.dart
diff --git a/frog/parser.dart b/frog/parser.dart
index d97692e955570e8083015df0fab373a62526dfe2..c4dd83bb72cbcb5197bdc311cc7fb4117dbe0a42 100644
--- a/frog/parser.dart
+++ b/frog/parser.dart
@@ -1451,10 +1451,19 @@ class Parser {
var typeToBeNamedLater = new NameTypeReference(false, null, null, span);
var genericType = addTypeArguments(typeToBeNamedLater, 0);
- // TODO(jimhug): Fill in correct typeToBeNamedLater details...
if (_peekKind(TokenKind.LBRACK) || _peekKind(TokenKind.INDEX)) {
+ genericType.baseType = new TypeReference(span, world.listType);
return finishListLiteral(start, isConst, genericType);
} else if (_peekKind(TokenKind.LBRACE)) {
+ genericType.baseType = new TypeReference(span, world.mapType);
+ if (genericType.typeArguments.length != 1) {
Jennifer Messerly 2011/12/08 02:13:26 probably worth pulling "genericType.typeArguments"
Siggi Cherem (dart-lang) 2011/12/08 23:02:15 Done.
+ _error('a map literal takes one type argument specfying the value type',
Jennifer Messerly 2011/12/08 02:13:26 I hope we follow up with the spec here. This curre
Siggi Cherem (dart-lang) 2011/12/08 23:02:15 Added TODO. Good news is that the spec actually ha
+ genericType.typeArguments.length == 0
+ ? genericType.typeArguments.span
+ : genericType.typeArguments[1].span);
+ }
+ genericType.typeArguments = [new TypeReference(span, world.stringType),
+ genericType.typeArguments[0]];
return finishMapLiteral(start, isConst, genericType);
} else {
_errorExpected('array or map literal');

Powered by Google App Engine
This is Rietveld 408576698