Chromium Code Reviews| 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'); |