diff --git a/src/Type/Accessory/HasOffsetType.php b/src/Type/Accessory/HasOffsetType.php index d0c5740db2a..e65fe55b722 100644 --- a/src/Type/Accessory/HasOffsetType.php +++ b/src/Type/Accessory/HasOffsetType.php @@ -22,6 +22,7 @@ use PHPStan\Type\Traits\MaybeCallableTypeTrait; use PHPStan\Type\Traits\MaybeIterableTypeTrait; use PHPStan\Type\Traits\MaybeObjectTypeTrait; +use PHPStan\Type\Traits\MaybeStringTypeTrait; use PHPStan\Type\Traits\NonGeneralizableTypeTrait; use PHPStan\Type\Traits\NonGenericTypeTrait; use PHPStan\Type\Traits\NonRemoveableTypeTrait; @@ -44,6 +45,7 @@ class HasOffsetType implements CompoundType, AccessoryType use MaybeCallableTypeTrait; use MaybeIterableTypeTrait; use MaybeObjectTypeTrait; + use MaybeStringTypeTrait; use TruthyBooleanTypeTrait; use NonGenericTypeTrait; use UndecidedComparisonCompoundTypeTrait; @@ -77,11 +79,6 @@ public function getObjectClassReflections(): array return []; } - public function getConstantStrings(): array - { - return []; - } - public function accepts(Type $type, bool $strictTypes): AcceptsResult { if ($type instanceof CompoundType) { @@ -347,46 +344,6 @@ public function isInteger(): TrinaryLogic return TrinaryLogic::createNo(); } - public function isString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isNumericString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isNonEmptyString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isNonFalsyString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isLiteralString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isLowercaseString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isClassString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isUppercaseString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - public function getClassStringObjectType(): Type { return new ObjectWithoutClassType(); @@ -402,11 +359,6 @@ public function isVoid(): TrinaryLogic return TrinaryLogic::createNo(); } - public function isScalar(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - public function looseCompare(Type $type, PhpVersion $phpVersion): BooleanType { return new BooleanType(); diff --git a/src/Type/Accessory/HasOffsetValueType.php b/src/Type/Accessory/HasOffsetValueType.php index 1ae12e2ced0..54bcea9872a 100644 --- a/src/Type/Accessory/HasOffsetValueType.php +++ b/src/Type/Accessory/HasOffsetValueType.php @@ -27,6 +27,7 @@ use PHPStan\Type\Traits\MaybeCallableTypeTrait; use PHPStan\Type\Traits\MaybeIterableTypeTrait; use PHPStan\Type\Traits\MaybeObjectTypeTrait; +use PHPStan\Type\Traits\MaybeStringTypeTrait; use PHPStan\Type\Traits\NonGeneralizableTypeTrait; use PHPStan\Type\Traits\NonGenericTypeTrait; use PHPStan\Type\Traits\NonRemoveableTypeTrait; @@ -49,6 +50,7 @@ class HasOffsetValueType implements CompoundType, AccessoryType use MaybeCallableTypeTrait; use MaybeIterableTypeTrait; use MaybeObjectTypeTrait; + use MaybeStringTypeTrait; use TruthyBooleanTypeTrait; use NonGenericTypeTrait; use UndecidedComparisonCompoundTypeTrait; @@ -84,11 +86,6 @@ public function getObjectClassReflections(): array return []; } - public function getConstantStrings(): array - { - return []; - } - public function accepts(Type $type, bool $strictTypes): AcceptsResult { if ($type instanceof CompoundType) { @@ -441,46 +438,6 @@ public function isInteger(): TrinaryLogic return TrinaryLogic::createNo(); } - public function isString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isNumericString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isNonEmptyString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isNonFalsyString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isLiteralString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isLowercaseString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isUppercaseString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - - public function isClassString(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - public function getClassStringObjectType(): Type { return new ObjectWithoutClassType(); @@ -496,11 +453,6 @@ public function isVoid(): TrinaryLogic return TrinaryLogic::createNo(); } - public function isScalar(): TrinaryLogic - { - return TrinaryLogic::createMaybe(); - } - public function looseCompare(Type $type, PhpVersion $phpVersion): BooleanType { return new BooleanType(); diff --git a/src/Type/Traits/MaybeStringTypeTrait.php b/src/Type/Traits/MaybeStringTypeTrait.php new file mode 100644 index 00000000000..caa9abacb42 --- /dev/null +++ b/src/Type/Traits/MaybeStringTypeTrait.php @@ -0,0 +1,60 @@ +