-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Bug Description
explain_type uses a single maxMembers budget for all member kinds (properties, functions, enum values). For classes that declare many properties before their first function, the budget is exhausted by properties and zero functions are returned.
Reproduction
explain_type("ADiscoveryPlayerController", maxMembers: 50, contextLines: 0)
Returns:
- 50 properties (all UPROPERTY DefaultComponent declarations)
- 0 functions
count: 50(budget fully used by properties)
ADiscoveryPlayerController has 50+ UPROPERTY declarations before any function definition, so functions never get a slot.
Expected Behavior
Either:
- Separate limits —
maxFunctionsandmaxPropertiesparameters so users can control the mix - Reserved slots — Guarantee a minimum percentage of slots for each kind (e.g., at least 25% for functions)
- Interleaved listing — Alternate between properties and functions instead of listing all properties first
Option 1 (separate limits) would be most flexible and consistent with how maxChildren is already separate.
Impact
For large AngelScript classes (common in Discovery — player controllers, game modes, characters), explain_type returns only component/property declarations and none of the class's actual behavior (functions). This forces a follow-up find_member call for functions, partially negating the round-trip savings of explain_type.