fix(parser): handle void return type in universal method calls

- Add check for void return type to prevent materialization in tmp var
- Return method call directly when return type is void
- Prevent unnecessary temporary variable assignment for void providers
- Maintain proper expression statement handling for void operations
pull/17/head
韩天峰 1 month ago
parent e966f0e941
commit 1ac190959c
  1. 6
      src/Parser/UniversalMethodCall.php

@ -641,6 +641,12 @@ trait UniversalMethodCall
default => null,
};
// A void provider call is already a complete expression statement and
// cannot be materialized in the generic php::Var result temporary.
if (($def['return_type'] ?? Type::VAR) === Type::VOID) {
return $methodCall;
}
$tmpVar = $this->addTmpVar(Type::VAR);
$this->context->beforeStmtLines[] = "{$tmpVar} = {$methodCall};";
return $tmpVar;

Loading…
Cancel
Save