1: <?php declare(strict_types = 1);
2:
3: namespace PHPStan\Reflection;
4:
5: use PHPStan\Type\Generic\TemplateTypeVarianceMap;
6: use PHPStan\Type\Type;
7:
8: /**
9: * Extended function/method signature with separate PHPDoc and native types.
10: *
11: * Extends ParametersAcceptor with:
12: * - Extended parameter reflections (separate PHPDoc/native types per parameter)
13: * - Separate PHPDoc and native return types (vs the combined return type from ParametersAcceptor)
14: * - Call-site variance map for template type parameters
15: *
16: * This is the return type of FunctionReflection::getVariants() and
17: * ExtendedMethodReflection::getVariants().
18: *
19: * @api
20: * @api-do-not-implement
21: */
22: interface ExtendedParametersAcceptor extends ParametersAcceptor
23: {
24:
25: /** @return list<ExtendedParameterReflection> */
26: public function getParameters(): array;
27:
28: public function getPhpDocReturnType(): Type;
29:
30: public function getNativeReturnType(): Type;
31:
32: public function getCallSiteVarianceMap(): TemplateTypeVarianceMap;
33:
34: }
35: