File tree Expand file tree Collapse file tree 4 files changed +28
-1
lines changed
test/dotty/tools/dotc/reporting Expand file tree Collapse file tree 4 files changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -61,6 +61,7 @@ public enum ErrorMessageID {
6161 AmbiguousOverloadID ,
6262 ReassignmentToValID ,
6363 TypeDoesNotTakeParametersID ,
64+ ParameterizedTypeLacksArgumentsID ,
6465 ;
6566
6667 public int errorNumber () {
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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 _ =>
Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments