GitNexus/gitnexus/test/fixtures/lang-resolution/php-call-result-binding/App.php
Gergo Magyar 5769872b70 feat: Phase 9 call-result variable binding across 11 languages
Activate the dormant Tier 2b pendingCallResults infrastructure in
type-env.ts by extending each language's extractPendingAssignment to
emit { kind: 'callResult', lhs, callee } when the RHS of an untyped
variable declaration is a simple function call.

This enables `var user = getUser(); user.save()` to resolve at TypeEnv
build time. Tier 2b now runs before Tier 2a copy-propagation, enabling
mixed chains like `const user = getUser(); const alias = user;
alias.save()`.

Languages: TS, JS, Java, Kotlin, C#, Go, Rust, Python, PHP, Ruby, C++.
Swift excluded. Each language gets a call-result-binding test fixture
and integration tests.

Conservative: only simple calls (no method calls with receivers), only
when exactly one callable matches, first-writer-wins.
2026-03-19 08:59:16 +00:00

22 lines
347 B
PHP

<?php
class User {
public string $name;
public function __construct(string $name) {
$this->name = $name;
}
public function save(): bool {
return true;
}
}
function getUser(string $name): User {
return new User($name);
}
function processUser(): void {
$user = getUser("alice");
$user->save();
}