-
Notifications
You must be signed in to change notification settings - Fork 128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Warnings collection #2602
base: master
Are you sure you want to change the base?
Warnings collection #2602
Conversation
Tests are failing, because of duplicated warning message, I'll try to come up with minimal example. UPDT: New issue: #2603 |
|
Conceptually very interesting! This is an aspect that I think would also generally benefit from more thought during development: Which parts of the system must be provided as foundation, and which can be built on top? |
Ideas for warnings:
This list will be expanded in the future. Regarding implementation... if community thinks that this is a good idea, I will implement them. Currently I only gather ideas. Important: those warnings will be optional, user is not required to import the library and see them. |
One question that may be worth taking into account: What makes most programs wrong? I think the type tests |
There seems to be a pattern in the expansion code, so maybe this code can be generated from shorter declarative descriptions of warnings? |
#2189 may be a candidate to address with this technique. |
I've added quite interesting and less trivial warning. It now detects missing |
You may be able to find a better design for the loading process, to make adding such features more elegant! |
I've copied code from #2458, that particular task should be fixed in the compiler itself, but Prolog code is useful enough to give it second life here. |
After recent discussion #2599, I've decided to start collecting useful warnings that can be applied during compilation. If you have good ideas for warnings, please post them here.
Relevant issues: #2600 #2601.
If you want to test, just import
warnings
module:And that's all.