Skip to content

Commit 8fbe087

Browse files
authored
Merge pull request #2445 from ennru/ennru_ParameterizedTypeLacksArguments
Move ´parameterized type lack argument list´ to error case class
2 parents 09a1f56 + dcaf750 commit 8fbe087

File tree

4 files changed

+28
-1
lines changed

4 files changed

+28
-1
lines changed

compiler/src/dotty/tools/dotc/reporting/diagnostic/ErrorMessageID.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public enum ErrorMessageID {
6161
AmbiguousOverloadID,
6262
ReassignmentToValID,
6363
TypeDoesNotTakeParametersID,
64+
ParameterizedTypeLacksArgumentsID,
6465
;
6566

6667
public int errorNumber() {

compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,4 +1326,14 @@ object messages {
13261326
|declared to take any.
13271327
|"""
13281328
}
1329+
1330+
case class ParameterizedTypeLacksArguments(psym: Symbol)(implicit ctx: Context)
1331+
extends Message(ParameterizedTypeLacksArgumentsID) {
1332+
val msg = hl"parameterized $psym lacks argument list"
1333+
val kind = "Reference"
1334+
val explanation =
1335+
hl"""The $psym is declared with non-implicit parameters, you may not leave
1336+
|out the parameter list when extending it.
1337+
|"""
1338+
}
13291339
}

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1286,7 +1286,7 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
12861286
case cinfo: MethodType =>
12871287
if (!ctx.erasedTypes) { // after constructors arguments are passed in super call.
12881288
typr.println(i"constr type: $cinfo")
1289-
ctx.error(em"parameterized $psym lacks argument list", ref.pos)
1289+
ctx.error(ParameterizedTypeLacksArguments(psym), ref.pos)
12901290
}
12911291
ref
12921292
case _ =>

compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,4 +457,20 @@ class ErrorMessagesTests extends ErrorMessagesTest {
457457
assertEquals("WithOutParams", tpe.show)
458458
}
459459

460+
@Test def parameterizedTypeLacksParameters =
461+
checkMessagesAfter("frontend") {
462+
"""
463+
|trait WithParams(s: String)
464+
|class Extending extends WithParams
465+
""".stripMargin
466+
}
467+
.expect { (ictx, messages) =>
468+
implicit val ctx: Context = ictx
469+
val defn = ictx.definitions
470+
471+
assertMessageCount(1, messages)
472+
val ParameterizedTypeLacksArguments(symbol) :: Nil = messages
473+
assertEquals("trait WithParams", symbol.show)
474+
}
475+
460476
}

0 commit comments

Comments
 (0)