diff options
author | Martin Odersky <odersky@gmail.com> | 2016-10-02 13:15:35 +0200 |
---|---|---|
committer | Guillaume Martres <smarter@ubuntu.com> | 2016-10-11 19:21:02 +0200 |
commit | 2fe7e9220ab12336d4dcddbe9b523a736a6c17e8 (patch) | |
tree | e18b665db9b15652541a14b4428d5344bce266c8 /src/dotty/tools/dotc/typer/Typer.scala | |
parent | 146bc29acaba58391a5462ee26f989debaac9038 (diff) | |
download | dotty-2fe7e9220ab12336d4dcddbe9b523a736a6c17e8.tar.gz dotty-2fe7e9220ab12336d4dcddbe9b523a736a6c17e8.tar.bz2 dotty-2fe7e9220ab12336d4dcddbe9b523a736a6c17e8.zip |
Disallow singleton types in unions
For the moment, we do not know how to handle something like
1 | 2
or
x.type | y.type
correctly. So it's better to disallow these situations until we find a proper
solution.
Diffstat (limited to 'src/dotty/tools/dotc/typer/Typer.scala')
-rw-r--r-- | src/dotty/tools/dotc/typer/Typer.scala | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala index bbb20bcf5..e423082d5 100644 --- a/src/dotty/tools/dotc/typer/Typer.scala +++ b/src/dotty/tools/dotc/typer/Typer.scala @@ -999,8 +999,9 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit } def typedOrTypeTree(tree: untpd.OrTypeTree)(implicit ctx: Context): OrTypeTree = track("typedOrTypeTree") { - val left1 = typed(tree.left) - val right1 = typed(tree.right) + val where = "in a union type" + val left1 = checkNotSingleton(typed(tree.left), where) + val right1 = checkNotSingleton(typed(tree.right), where) assignType(cpy.OrTypeTree(tree)(left1, right1), left1, right1) } |