From 72964155b42047e78cf9a54633893b83aaa7e5d5 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 20 Mar 2023 19:51:05 -0700 Subject: 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. --- autoload.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'autoload.c') diff --git a/autoload.c b/autoload.c index accead94..bb293022 100644 --- a/autoload.c +++ b/autoload.c @@ -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); -- cgit v1.2.3