From: Nikodemus S. <nik...@ra...> - 2009-08-01 08:35:23
|
2009/7/1 Larry D'Anna <la...@el...>: > This patch implements sb-cltl2:augment-environment, a function that the user > can call from a macro to add information to a lexical environment. Thank you! Merged as 1.0.30.28. > This patch also changes the behavior of variable-information and > function-information so they use the type from leaf-type, without regard to if > leaf-where-from is :declared. The method that augment-environment uses to parse > declarations will sometimes record type of a functions with leaf-where-from = > :defined instead of :declared. leaf-type is always a ctype, and it's always a > type that the values of the leaf must be a member of, so as far as I can tell > this change is correct. Technically it could be from a derived type, but I managed to convince myself that at times when these function can be expected to be called, the derived type information is not yet there. I'm not entirely happy with this, though, and may later tweak AUGMENT-ENVIRONMENT to stick in :WHERE-FROM :AUGMENT-ENVIRONMENT or similar (also to catch uses of fake leaves in the compiler.) Cheers, -- Nikodemus |