aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/parsing/Parsers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-08-23 23:07:01 +0200
committerMartin Odersky <odersky@gmail.com>2015-08-23 23:07:01 +0200
commitc0001fb3b3dfee3b16af608983a328df9c39b900 (patch)
tree0a4ac6ad0b7bdb02bdfe34d3215afc4d07b5490b /src/dotty/tools/dotc/parsing/Parsers.scala
parentfc979d9fbd5c4c60c4e5a4875ec1f465fdf0c40a (diff)
downloaddotty-c0001fb3b3dfee3b16af608983a328df9c39b900.tar.gz
dotty-c0001fb3b3dfee3b16af608983a328df9c39b900.tar.bz2
dotty-c0001fb3b3dfee3b16af608983a328df9c39b900.zip
Add literal-based singleton types (SIP-23).
Only the parser needed to be updated. Everything else works out of the box.
Diffstat (limited to 'src/dotty/tools/dotc/parsing/Parsers.scala')
-rw-r--r--src/dotty/tools/dotc/parsing/Parsers.scala2
1 files changed, 2 insertions, 0 deletions
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)