diff options
author | Martin Odersky <odersky@gmail.com> | 2017-02-13 13:09:11 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2017-04-04 13:29:38 +0200 |
commit | a30e7ecabc84583fa93bc215b1d1b5186caec07b (patch) | |
tree | 3f2d166a51150a9e9a5b43742df53715874df7d4 /compiler/src/dotty/tools/dotc/ast | |
parent | 11965330882472e2976639c7c98b8ac44a819681 (diff) | |
download | dotty-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.scala | 6 |
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) |