metaborg / stratego

Apache License 2.0
10 stars 7 forks source link

Missing Definition Error Message not very informative #36

Open AZWN opened 9 months ago

AZWN commented 9 months ago

Short description More descriptive error message in case of missing definition

Problem description. Currently, an (console) error message for missing constructors might look like:

[ERROR] In 'file:///path/to/file.str2:123:45 - 123:48':
Undefined constructor with arity 4 and type DynT(DynT(Dyn)).

While using the line/colon info it is possible to find out which constructor is missing, that is not very convenient. This problem is particularly relevant when reading buildfarm logs, without the possibility to perform a local build quickly.

Describe the solution you'd like

It would be more helpful if the constructor name itself was reported in the message. For example:

[ERROR] In 'file:///path/to/file.str2:123:45 - 123:48':
Undefined constructor Foo/4 of type DynT(DynT(Dyn)).

Describe alternatives you've considered

Perhaps the error message would be even more helpful if alternatives are proposed. For example, constructors with the same name of a different sort, or with the same name with different arity.

Additional context

I did not validate whether this occurs for missing sort/rule definitions too, but it might be worth to check/align those as well.