-
-
Couldn't load subscription status.
- Fork 29
Description
I think the current format for output could be iterated on, and be made a little friendlier to work with. Instead of today's format using multiline strings:
out: |
main:7: error: Argument 1 has incompatible type "int"; expected "str" [arg-type]
main:9: note: Revealed type is "builtins.bool*"We could allow specifying out as a list of objects with properties:
out:
- error: 'Argument 1 has incompatible type "int"; expected "str" [arg-type]'
line: 7
- note: 'Revealed type is "builtins.bool"'
line: 9This would unlock a few different things we could then implement at a higher level of abstraction. There are probably more that will make sense, these are just the ones I can think of for now.
Special support for error-codes
out:
- error: 'Argument 1 has incompatible type "int"; expected "str"'
code: "arg-type"
line: 7Special support for revealed type
out:
- revealed_type: "builtins.bool"
line: 9Allow mixing regex with non-regex
out:
- error: 'Argument 1 has incompatible type "int\*?"; expected "str\*?"'
line: 7
regex: trueOmitting line numbers
This probably requires more knowledge of the internals than I currently have, but I think it might make sense to allow omitting line numbers. I'm proposing that this example would match if there's revealed type on line nine, followed by an error message on any line after that (strictly greater than line 9).
out:
- note: 'Revealed type is "builtins.bool"'
line: 9
- error: 'Argument 1 has incompatible type "int"; expected "str"'
code: "arg-type"What do you think? 🙂