aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/ast
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-02-13 13:09:11 +0100
committerMartin Odersky <odersky@gmail.com>2017-04-04 13:29:38 +0200
commita30e7ecabc84583fa93bc215b1d1b5186caec07b (patch)
tree3f2d166a51150a9e9a5b43742df53715874df7d4 /compiler/src/dotty/tools/dotc/ast
parent11965330882472e2976639c7c98b8ac44a819681 (diff)
downloaddotty-a30e7ecabc84583fa93bc215b1d1b5186caec07b.tar.gz
dotty-a30e7ecabc84583fa93bc215b1d1b5186caec07b.tar.bz2
dotty-a30e7ecabc84583fa93bc215b1d1b5186caec07b.zip
Check that cases with type parameters also have an extends clause
Diffstat (limited to 'compiler/src/dotty/tools/dotc/ast')
-rw-r--r--compiler/src/dotty/tools/dotc/ast/Desugar.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/src/dotty/tools/dotc/ast/Desugar.scala b/compiler/src/dotty/tools/dotc/ast/Desugar.scala
index 3a3acb06c..cf128c26e 100644
--- a/compiler/src/dotty/tools/dotc/ast/Desugar.scala
+++ b/compiler/src/dotty/tools/dotc/ast/Desugar.scala
@@ -297,7 +297,11 @@ object desugar {
// This is not watertight, but `extends AnyVal` will be replaced by `inline` later.
val originalTparams =
- if (isEnumCase && parents.isEmpty) reconstitutedEnumTypeParams(cdef.pos.startPos)
+ if (isEnumCase && parents.isEmpty) {
+ if (constr1.tparams.nonEmpty)
+ ctx.error(em"case with type parameters needs extends clause", constr1.tparams.head.pos)
+ reconstitutedEnumTypeParams(cdef.pos.startPos)
+ }
else constr1.tparams
val originalVparamss = constr1.vparamss
val constrTparams = originalTparams.map(toDefParam)