diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2023-03-20 19:51:05 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2023-03-20 19:51:05 -0700 |
commit | 72964155b42047e78cf9a54633893b83aaa7e5d5 (patch) | |
tree | 6c03ea629f0048a69abff1e68f2bd67465ceac15 /autoload.c | |
parent | a3a1d75a0fa8e5db8eee9b59285251b6368530ac (diff) | |
download | txr-72964155b42047e78cf9a54633893b83aaa7e5d5.tar.gz txr-72964155b42047e78cf9a54633893b83aaa7e5d5.tar.bz2 txr-72964155b42047e78cf9a54633893b83aaa7e5d5.zip |
compiler: implement unused warning
* autoload.c (compiler_set_entries): Register slot symbol
"unused".
* stdlib/compiler.tl (compile-opts): New slot, unused.
(%warning-syms%): List unused symbol.
(env lookup-var): Support optional mark-used parameter,
just like lookup-fun.
(env unused-check): New method.
(compiler comp-var): Pass t to mark-used parameter of
lookup-var to register the use.
(compiler (comp-let, comp-var)): Call unused-check
method after sub-compilations are done to dump
diagnostics about unused variables.
Diffstat (limited to 'autoload.c')
-rw-r--r-- | autoload.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -668,7 +668,8 @@ static val compiler_set_entries(val fun) nil }; val slname[] = { - lit("shadow-fun"), lit("shadow-var"), lit("shadow-cross"), nil + lit("shadow-fun"), lit("shadow-var"), lit("shadow-cross"), + lit("unused"), nil }; autoload_sys_set(al_struct, sys_name, fun); autoload_set(al_struct, sname, fun); |