feat(parsing): Python and TypeScript extract_parameter_type
- Python impl: strip leading `async ` then wrap as `def __sig__{sig}: pass` (production format is `(params) -> ret`, not `def name(...)`); AST descent over `typed_parameter` / `typed_default_parameter` to `identifier` / `attribute` / `generic_type` / `binary_operator`
- TS impl: wrap as `class __W__ { {sig} {} }`; tree-sitter recovers `required_parameter` / `optional_parameter` even when leading `function` / `async` / `static` / `public` triggers ERROR
- spec correction inline: strip only `Optional[T]` and PEP-604 `T | None` (Python); only `T | null` / `T | undefined` (TS). `List[T]` / `Array<T>` return base identifier — list/array methods do not live on `T` (symmetric to slice-5b wrong-class collapse)
- Out-of-scope per language returns `None`: Python tuple/callable/generic-type-parameters; TS object_type/function-type/tuple_type/intersection_type
- 10 Python tests + 13 TS tests covering bare ident, Optional/None-union strip, generic-base, attribute/nested rightmost, predefined, optional/default param, async / function / static / public wrapper recovery, unknown var, out-of-scope kinds
- Production re-index post-slice-3: self-index resolved 22914 -> 23004 (+90); Go anchor `extract_calls_recursive` still resolves exactly 2 callees (slice-5b invariant holds). +90 direction reflects Ambiguous-arm filter narrowing to single survivor on cases where priority logic returns None (cross-file Python/TS method calls previously unresolvable); Found-arm wrong-class collapse contributes negative direction; net is positive A
Angel Bartolli committed
87652d1f6eb9c256b35e57ce7c2dcdf1da31ef50
Parent: ce052b4