You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Default arguments in TypeScript / JavaScript, Kotlin, PHP and Python, as already done for Swift: a call inside a parameter's default value is an edge from the declaring function with attrs.default_arg, which impact lists as via default argument without walking it. In TypeScript / JavaScript, Kotlin and PHP (8.1 new in initializers), where the default runs on every call, a resolved call that leaves the argument out (or passes undefined in TS) also gets an edge from the caller to the default's callee with attrs.omits_default and attrs.default_of, so impact on that callee lists the callers that run it. Named and trailing-lambda arguments count; a call with a spread argument gets none. Python evaluates defaults once at def time, so only the declaration edge is marked. See schema.md (#212).
docs/validation-log.md records the cg affected hand-check of 20 (file → test) pairs: immich server/ 20/20 after the TypeScript fix below, flask 9/20 (the misses are filed as #221), and the Swift narrowing numbers (#199, #218).
Changed
Swift heuristic mode narrows selector candidates: a local assigned from a project function or static factory with a declared project return type (let b = makeBridge(), let s = Store.shared(), -> Self) gets that type, and a selector with only one visible declaring type binds by name instead of as a candidate. private / fileprivate members, and members of a file-private type, count only in their own file; an overload set split across files or across access levels stays visible. Candidate edges drop on most corpora (Kingfisher 206 → 197, SwiftUIX 454 → 441) with exact-mode precision and recall on Alamofire unchanged; numbers in validation-log.md (#218).
Fixed
TypeScript: an instance method no longer gets OVERRIDDEN_BY (or IMPLEMENTED_BY) from a base class's static member of the same name, so a base service's static create(...) factory is not an override target of every subclass's create. Found by the cg affected hand-check (#199).