Skip to content

Commit 04091a1

Browse files
committed
Add BooleanType->toTrinaryLogic()
1 parent 6bb6d92 commit 04091a1

File tree

4 files changed

+14
-14
lines changed

4 files changed

+14
-14
lines changed

src/TrinaryLogic.php

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,6 @@ public static function createFromBoolean(bool $value): self
4747
return self::$registry[$yesNo] ??= new self($yesNo);
4848
}
4949

50-
public static function createFromBooleanType(BooleanType $type): self
51-
{
52-
if ($type->isTrue()->yes()) {
53-
return self::createYes();
54-
}
55-
if ($type->isFalse()->yes()) {
56-
return self::createNo();
57-
}
58-
59-
return self::createMaybe();
60-
}
61-
6250
private static function create(int $value): self
6351
{
6452
self::$registry[$value] ??= new self($value);

src/Type/BooleanType.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,4 +163,16 @@ public function toPhpDocNode(): TypeNode
163163
return new IdentifierTypeNode('bool');
164164
}
165165

166+
public function toTrinaryLogic(): TrinaryLogic
167+
{
168+
if ($this->isTrue()->yes()) {
169+
return TrinaryLogic::createYes();
170+
}
171+
if ($this->isFalse()->yes()) {
172+
return TrinaryLogic::createNo();
173+
}
174+
175+
return TrinaryLogic::createMaybe();
176+
}
177+
166178
}

src/Type/IntersectionType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ public function isScalar(): TrinaryLogic
717717
public function looseCompare(Type $type, PhpVersion $phpVersion): BooleanType
718718
{
719719
return $this->intersectResults(
720-
static fn (Type $innerType): TrinaryLogic => TrinaryLogic::createFromBooleanType($innerType->looseCompare($type, $phpVersion))
720+
static fn (Type $innerType): TrinaryLogic => $innerType->looseCompare($type, $phpVersion)->toTrinaryLogic()
721721
)->toBooleanType();
722722
}
723723

src/Type/UnionType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ public function isScalar(): TrinaryLogic
677677
public function looseCompare(Type $type, PhpVersion $phpVersion): BooleanType
678678
{
679679
return $this->unionResults(
680-
static fn (Type $innerType): TrinaryLogic => TrinaryLogic::createFromBooleanType($innerType->looseCompare($type, $phpVersion))
680+
static fn (Type $innerType): TrinaryLogic => $innerType->looseCompare($type, $phpVersion)->toTrinaryLogic()
681681
)->toBooleanType();
682682
}
683683

0 commit comments

Comments
 (0)