diff options
author | Den Shabalin <den.shabalin@gmail.com> | 2013-08-16 12:17:22 +0200 |
---|---|---|
committer | Den Shabalin <den.shabalin@gmail.com> | 2013-08-16 12:22:59 +0200 |
commit | 213116631aa2e338e09b6f6de93f8e9ef216ce14 (patch) | |
tree | c99b54ff511eb2a084d6b0700c9d6f3c3e9b2e05 /src | |
parent | f17fb5eaa545490c761acd4f6979a619f919ac86 (diff) | |
download | scala-213116631aa2e338e09b6f6de93f8e9ef216ce14.tar.gz scala-213116631aa2e338e09b6f6de93f8e9ef216ce14.tar.bz2 scala-213116631aa2e338e09b6f6de93f8e9ef216ce14.zip |
SI-7757 disallow constructor annotations on traits
Previously it was possible to define constructor annotations on traits
with really weird side-effects (parser lost the body of the trait). Now
constructor annotations on traits will cause appropriate syntax errors.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index d0b0c09d59..a4093f9afa 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -2665,7 +2665,7 @@ self => syntaxError("traits cannot have type parameters with context bounds `: ...' nor view bounds `<% ...'", skipIt = false) classContextBounds = List() } - val constrAnnots = constructorAnnotations() + val constrAnnots = if (!mods.isTrait) constructorAnnotations() else Nil val (constrMods, vparamss) = if (mods.isTrait) (Modifiers(Flags.TRAIT), List()) else (accessModifierOpt(), paramClauses(name, classContextBounds, ofCaseClass = mods.isCase)) |