From 5be00f058a725863e8c73db555abb9aecc73367b Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Wed, 24 May 2017 10:19:32 +0200 Subject: [PATCH] Fix error message for value class with var parameter --- compiler/src/dotty/tools/dotc/typer/Checking.scala | 4 +++- .../test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/compiler/src/dotty/tools/dotc/typer/Checking.scala b/compiler/src/dotty/tools/dotc/typer/Checking.scala index f132b5aa8366..d7cc0c3b392f 100644 --- a/compiler/src/dotty/tools/dotc/typer/Checking.scala +++ b/compiler/src/dotty/tools/dotc/typer/Checking.scala @@ -459,7 +459,9 @@ object Checking { if (isCyclic(clazz.asClass)) ctx.error(ValueClassesMayNotWrapItself(clazz), clazz.pos) else { - val clParamAccessors = clazz.asClass.paramAccessors.filter(_.isTerm) + val clParamAccessors = clazz.asClass.paramAccessors.filter { param => + param.isTerm && !param.is(Flags.Accessor) + } clParamAccessors match { case List(param) => if (param.is(Mutable)) diff --git a/compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala b/compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala index 36528482bfe6..2afa2b997f3f 100644 --- a/compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala +++ b/compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala @@ -7,7 +7,7 @@ import diagnostic.messages._ import dotty.tools.dotc.core.Types.WildcardType import dotty.tools.dotc.parsing.Tokens import org.junit.Assert._ -import org.junit.{Ignore, Test} +import org.junit.Test class ErrorMessagesTests extends ErrorMessagesTest { // In the case where there are no errors, we can do "expectNoErrors" in the @@ -758,7 +758,7 @@ class ErrorMessagesTests extends ErrorMessagesTest { assertEquals("class MyValue", valueClass.show) } - @Test @Ignore def valueClassParameterMayNotBeVar = + @Test def valueClassParameterMayNotBeVar = checkMessagesAfter("refchecks") { """class MyValue(var i: Int) extends AnyVal""" }