Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c5a99df

Browse files
Rework
1 parent 846d7bd commit c5a99df

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

‎src/PhpDoc/ResolvedPhpDocBlock.php‎

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,10 +252,7 @@ public static function createEmpty(): self
252252
*/
253253
public function merge(array $parents, array $parentPhpDocBlocks): self
254254
{
255-
$className = $this->nameScope !== null ? $this->nameScope->getClassName() : null;
256-
$classReflection = $className !== null && $this->reflectionProvider->hasClass($className)
257-
? $this->reflectionProvider->getClass($className)
258-
: null;
255+
$classReflection = $this->getClassReflection();
259256

260257
// new property also needs to be added to createEmpty()
261258
$result = new self();
@@ -461,6 +458,20 @@ public function getNullableNameScope(): ?NameScope
461458
return $this->nameScope;
462459
}
463460

461+
private function getClassReflection(): ?ClassReflection
462+
{
463+
if ($this->nameScope === null) {
464+
return null;
465+
}
466+
467+
$className = $this->nameScope->getClassName();
468+
if (!$this->reflectionProvider->hasClass($className)) {
469+
return null;
470+
}
471+
472+
return $this->reflectionProvider->getClass($className);
473+
}
474+
464475
/**
465476
* @return array<(string|int), VarTag>
466477
*/
@@ -827,6 +838,14 @@ public function isPure(): ?bool
827838
return $this->isPure;
828839
}
829840

841+
if ($this->nameScope !== null) {
842+
$classReflection = $this->getClassReflection();
843+
if ($classReflection !== null) {
844+
$this->isPure = $classReflection->getDefaultMethodPurity();
845+
return $this->isPure;
846+
}
847+
}
848+
830849
$this->isPure = null;
831850
}
832851

‎src/Reflection/Php/PhpClassReflectionExtension.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -892,7 +892,7 @@ public function createUserlandMethodReflection(ClassReflection $fileDeclaringCla
892892
}
893893
}
894894

895-
$isPure ??= $resolvedPhpDoc->isPure() ?? $phpDocBlockClassReflection->getDefaultMethodPurity();
895+
$isPure ??= $resolvedPhpDoc->isPure();
896896
$asserts = Assertions::createFromResolvedPhpDocBlock($resolvedPhpDoc);
897897
$acceptsNamedArguments = $resolvedPhpDoc->acceptsNamedArguments();
898898
$selfOutType = $resolvedPhpDoc->getSelfOutTag() !== null ? $resolvedPhpDoc->getSelfOutTag()->getType() : null;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /