Skip to content

Same function reported as missing multiple times #19731

Closed
@OndrejSpanel

Description

@OndrejSpanel

Compiler version

3.0.0-3.4.1-RC1

Minimized example

trait Base {
  def func(): Unit
}

class Derived extends Base {
  def func(): Unit
}

Output Error/Warning message

class Derived needs to be abstract, since:
it has 2 unimplemented members.
/** As seen from class Derived, the missing signatures are as follows.
 *  For convenience, these are usable as stub implementations.
 */
  // Members declared in Base
  def func(): Unit = ???
  
  // Members declared in Derived
  def func(): Unit = ???

class Derived extends Base {

Why this Error/Warning was not helpful

The message was unhelpful because it lists the same function twice. When using this as a stub for implementation, you need to remove it. This is esp. confusing when there are many methods to be implemented.

Suggested improvement

It could be made more helpful by listing each method overload only once. e.g.:

class Derived needs to be abstract, since:
it has 1 unimplemented member.
/** As seen from class Derived, the missing signatures are as follows.
 *  For convenience, these are usable as stub implementations.
 */
  // Members declared in Base
  def func(): Unit = ???
  
class Derived extends Base {

Metadata

Metadata

Assignees

Labels

SpreeSuitable for a future Spreearea:reportingError reporting including formatting, implicit suggestions, etcbetter-errorsIssues concerned with improving confusing/unhelpful diagnostic messagesitype:enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions