Make ClassLike::from
return type assert the subclass type
#154
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When reading a
ClassType
from a FQCN or a file, the result can be anything from the 4 subclasses. When we know the type of the object that is parsed, having a more strict return type has additional benefits:Usage:
If the type is unknown, use
ClassLike::from($class)
.Otherwise, when the expected type is known, use the more specific
ClassType::from($fqcn)
,TraitType::from($fqcn)
,InterfaceType::from($fqcn)
, orEnumType::from($fqcn)
.This is a breaking change for users that call
ClassType::from($fqcn)
on something that is not a class name.