Commit Graph

190 Commits

Author SHA1 Message Date
Ryan Fleury f754b4c2db fix pointer/array comparison paths not being enabled for not-equal; fix value arithmetic paths applying in type comparisons 2025-08-15 11:31:50 -07:00
Ryan Fleury 83650a5fe0 support unsigned -> unsigned int; support as-style casts in expressions; pack int alias in pdb-produced rdis 2025-08-15 10:56:42 -07:00
Ryan Fleury a8f6142e63 eval/ir: do not strip enum types off when doing address operations 2025-08-11 16:18:39 -07:00
Ryan Fleury 9cff2bc7dd symbolof operation in eval 2025-08-05 10:21:42 -07:00
Ryan Fleury 163b79e4c0 decay bitfield types in casting path, allow casting to integer types 2025-07-25 15:29:34 -07:00
Ryan Fleury 393c291f63 reflect casting changes to call-cast style 2025-07-25 15:19:35 -07:00
Ryan Fleury 1c2855a314 unwrap decorative type operators on casts when building ops for casting, to allow for graceful enum casting; gracefully skip struct/enum symbol name prefixes 2025-07-25 15:17:39 -07:00
Ryan Fleury c43697fb18 fix type debug info table evaluations; fix preference for auto-hook-applied lhs evaluation when doing member/array accesses 2025-07-25 13:29:08 -07:00
Ryan Fleury 051bacf124 reflect cast changes in cast-calls 2025-07-23 16:05:30 -07:00
Ryan Fleury 3ae3f94db0 split unsigned => signed casting case from shrinking conversion truncation cast path 2025-07-23 16:04:59 -07:00
Ryan Fleury 38f769c00d only apply truncation to integer types, oops 2025-07-23 14:36:20 -07:00
Ryan Fleury cd64d959ef apply integer truncation operations on both sign/size changes, rather than just size 2025-07-23 14:31:51 -07:00
Ryan Fleury dc79c06031 adjust implicit accessing rules with nested auto hooks (slice-of-slices case); prefer to not show address value with string prefix content in single-line eval stringification 2025-06-30 09:33:23 -07:00
Ryan Fleury 0018147b95 bounds-check di matches 2025-06-27 14:40:13 -07:00
Ryan Fleury d4c15d9089 pull out type-only identifier resolution and switch to match store; eliminate synchronous matching work 2025-06-27 13:55:18 -07:00
Ryan Fleury 5750c17c80 eliminate old slow identifier resolution path 2025-06-27 12:34:46 -07:00
Ryan Fleury b315bf6811 switch eval debug info symbol name resolution to using async match store 2025-06-27 11:58:04 -07:00
Ryan Fleury 36f5597d8e eliminate unneeded path-renormalization in debug info cache lookup 2025-06-25 10:52:29 -07:00
Ryan Fleury 00fd597658 fix ptr/ref coverage in expansions 2025-06-03 13:55:37 -07:00
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Ryan Fleury a111c21972 fix constant evaluation 2025-05-29 17:12:44 -07:00
Ryan Fleury 770fbe9459 constant evaluation 2025-05-29 17:04:01 -07:00
Ryan Fleury 477e2b19da fix preservation of ir tree chain w/ multiple composing type views 2025-05-29 13:40:46 -07:00
Ryan Fleury 14cfd87f68 start sketching out basic unreal type views 2025-05-28 18:00:16 -07:00
Ryan Fleury f116d88b08 wildcard instance identifier resolution in type views; ?{arg1, arg2, arg3} in type view pattern -> use arg1, arg2, or arg3 in expression 2025-05-28 15:41:48 -07:00
Ryan Fleury d0a2c0f22c auto hook list(expr) -> auto hook list(match), where match includes both an expression and a list of comma-delimited wildcard instances 2025-05-28 14:37:44 -07:00
Ryan Fleury b94535b20b fix array-indexing in type evaluation mode 2025-05-19 22:22:47 -07:00
Ryan Fleury 5cb2a7bbde fix usage of [] operator on pointer values; fix incorrect interpretation of []s as assembly style derefs in chained cases 2025-05-17 13:05:07 -07:00
Ryan Fleury a67f326f78 eliminate redundant recomputation of ir extensions 2025-05-14 10:27:01 -07:00
Ryan Fleury e10f0489da record which irtree-and-type generations were produced via auto-hooks; skip those when doing typeofs 2025-05-13 14:19:30 -07:00
Ryan Fleury 89e93459d7 fix ufcs-style 'raw' lens application 2025-05-13 13:51:56 -07:00
Ryan Fleury 8b8c88f310 preserve whole chain of parent irtrees, do not simply apply only to autohook overrides; straighten out some event consumption weirdness in interaction between autocompletion floating view & query floating view; ensure we mark the cfg space as dirty when modifying strings 2025-05-13 13:44:14 -07:00
Ryan Fleury 73c91ae2bc eval: adjust array expansion, use parent key of pointer argument, rather than key of pointer argument, to scope count expression evaluation; fix up a few edge cases with $. and implicit $ member accesses; make omit much more powerful, by allowing list of arguments to control all expansion expressions, rather than assuming only member names 2025-05-13 10:19:47 -07:00
Ryan Fleury fe3cac7ac3 parameterize irtree generation path with identifier resolution rules; in most cases, we want the usual order: implicit accesses -> locals -> registers -> globals/tlocals/types/procedures -> macros; but if we are specifically evaluating a call expression tree, we want to prefer callables - in this case, macros should be prioritized. 2025-05-12 11:56:57 -07:00
Ryan Fleury e491a76861 prevent mutating nil trees in irtree generation 2025-05-09 09:58:39 -07:00
Ryan Fleury b30e928501 fall back on creating a synthetic symbol name when a chain of leaf-identifier member accesses fail, and produce synthetic leaf-identifier expression to try to resolve it that way. 2025-05-08 14:00:54 -07:00
Ryan Fleury ead193ee3b move enum value by-name lookup onto cached fastpath 2025-05-07 17:08:28 -07:00
Ryan Fleury 9c296cb9b2 fixes for arithmetic with bitfields; bitfield -> numeric value path in irtree generation; fix bad stomping / mutation when generating a synthetic UFCS tree 2025-05-07 14:19:39 -07:00
Ryan Fleury 1284c25b9e sketch out better usage of expansion info in text visualizer; notes; naming pass 2025-05-07 08:58:12 -07:00
Ryan Fleury 2919ecb135 more robustness to malformed expressions 2025-05-07 06:25:47 -07:00
Ryan Fleury 3a46e66efa expand eval expression tree location info to being based on textual range, rather than just offset 2025-05-01 09:05:42 -07:00
Ryan Fleury ed4fe5e3d1 fix auto-downcasting to work in all cases 2025-05-01 08:27:03 -07:00
Ryan Fleury b0dd7700d7 apply autocasting below the ir-tree generation level of lens calls, so that we don't accidentally strip away lenses 2025-04-30 17:04:10 -07:00
Ryan Fleury 78928974cb implicit member access path 2025-04-30 16:38:25 -07:00
Ryan Fleury b1d63cd130 unattached process evaluation / lister 2025-04-30 13:34:05 -07:00
Ryan Fleury 10ff98faa8 fix type pattern matching for auto hooks, improve slice array indexing operations to rely less on the full irtree path (it composes poorly when using combining type views 2025-04-30 10:15:32 -07:00
Ryan Fleury f521e01d6e dynamic ternaries in ir tree evaluation, fixes to over-ambitious parsing of identifier qualifiers 2025-04-29 15:26:40 -07:00
Ryan Fleury 0a214fda3c dynamic type resolution in ir tree / type generation pass 2025-04-29 15:06:06 -07:00
Ryan Fleury 4cccc9cb42 proper cast parsing, elimninate chained casts entirely 2025-04-29 14:53:35 -07:00
Ryan Fleury d41b414f2a eliminate very-poorly-thought-through idea of 'chained casts' - we need to recognize cast operators in the parser somehow, otherwise we are using the expr chain for way too many things in many cases... 2025-04-29 14:29:42 -07:00