From c0001fb3b3dfee3b16af608983a328df9c39b900 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 23 Aug 2015 23:07:01 +0200 Subject: Add literal-based singleton types (SIP-23). Only the parser needed to be updated. Everything else works out of the box. --- src/dotty/tools/dotc/parsing/Parsers.scala | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/dotty/tools/dotc/parsing/Parsers.scala') diff --git a/src/dotty/tools/dotc/parsing/Parsers.scala b/src/dotty/tools/dotc/parsing/Parsers.scala index d6125f236..51ea09eac 100644 --- a/src/dotty/tools/dotc/parsing/Parsers.scala +++ b/src/dotty/tools/dotc/parsing/Parsers.scala @@ -709,12 +709,14 @@ object Parsers { * | Path `.' type * | `(' ArgTypes `)' * | Refinement + * | Literal */ def simpleType(): Tree = simpleTypeRest { if (in.token == LPAREN) atPos(in.offset) { makeTupleOrParens(inParens(argTypes())) } else if (in.token == LBRACE) atPos(in.offset) { RefinedTypeTree(EmptyTree, refinement()) } + else if (isLiteral) { SingletonTypeTree(literal()) } else path(thisOK = false, handleSingletonType) match { case r @ SingletonTypeTree(_) => r case r => convertToTypeId(r) -- cgit v1.2.3