Skip to content

Commit

Permalink
added self fetch support and creating type from array value (#687)
Browse files Browse the repository at this point in the history
  • Loading branch information
romalytvynenko authored Jan 19, 2025
1 parent d3546e8 commit c3a1c77
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
1 change: 1 addition & 0 deletions src/Infer/Handler/FunctionLikeHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public function enter(FunctionLike $node, Scope $scope)
$scope->context->setFunctionDefinition($fnDefinition = new FunctionLikeDefinition(
type: $fnType = new FunctionType($node->name->name ?? 'anonymous'),
sideEffects: [],
definingClassName: $scope->context->classDefinition?->name,
isStatic: $node instanceof Node\Stmt\ClassMethod ? $node->isStatic() : false,
));
$fnDefinition->isFullyAnalyzed = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,7 @@ class MethodCallsParametersExtractor implements ParameterExtractor
public function handle(RouteInfo $routeInfo, array $parameterExtractionResults): array
{
$extractedParameters = new ParametersExtractionResult(
parameters: array_map(
function (Parameter $p) {
$p->setAttribute('isFromMethodCall', true);

return $p;
},
array_values($routeInfo->requestParametersFromCalls->data),
),
parameters: array_values($routeInfo->requestParametersFromCalls->data),
);

$previouslyExtractedParameters = collect($parameterExtractionResults)->flatMap->parameters->keyBy('name');
Expand Down
7 changes: 7 additions & 0 deletions src/Support/Type/TypeHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ public static function createTypeFromValue(mixed $value)
return new LiteralBooleanType($value);
}

if (is_array($value)) {
return new KeyedArrayType(array_map(
fn ($key) => new ArrayItemType_($key, static::createTypeFromValue($value[$key])),
array_keys($value),
));
}

return null; // @todo: object
}

Expand Down

0 comments on commit c3a1c77

Please sign in to comment.