From b70e317e758fa61360803b029af63322dc95c444 Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Sat, 2 Jul 2022 17:10:16 -0400 Subject: [PATCH] Fixed it! Missed converting the inline call to the inline predicate to use id instead of env. Then exposed and fixed bugs with the inline part of infer types --- partial_eval.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/partial_eval.scm b/partial_eval.scm index 9e07552..841d936 100644 --- a/partial_eval.scm +++ b/partial_eval.scm @@ -4698,10 +4698,10 @@ (array) ) (range 1 (len (.marked_array_values c))))) ( _ (true_print "based on inline (let) case " params " we have sub_implies " sub_implies " and sub_guarentees " sub_guarentees) ) - ((ttyp timpl _assertion inl_subdata) (infer_types (.comb_body func) (.comb_id func) sub_implies sub_guarentees)) + ((ttyp timpl assertion inl_subdata) (infer_types (.comb_body func) (.comb_id func) sub_implies sub_guarentees)) ( _ (true_print "final result of inline " params " is type " ttyp " and impl " timpl)) ;(_ (true_print "exiting let")) - ) (array ttyp timpl empty_dict-list (concat (array inl_subdata) psub_data)))) + ) (array ttyp timpl empty_dict-list (concat (array (array ttyp timpl assertion inl_subdata)) psub_data)))) ; cond case ; start simply by making this only an 'and'-style recognizer ; if (vcond p b true p) (or (vcond p b true false)) combine b's implies with p's implies @@ -4998,7 +4998,7 @@ ; User inline - ((let_like_inline_closure func_value env) (dlet ( + ((let_like_inline_closure func_value (.marked_env_idx env)) (dlet ( ; To inline, we add all of the parameters + inline_level + 1 to the current functions additional symbols ; as well as a new se + inline_level + 1 symbol ; fill them with the result of evaling the parameters now