Skip to content

Commit c058333

Browse files
committed
Improve types
1 parent 6cb5eaf commit c058333

22 files changed

+88
-8
lines changed

src/Type/ArrayKeyType.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
use TypeLang\Mapper\Exception\Mapping\InvalidValueException;
88
use TypeLang\Mapper\Runtime\Context;
99

10+
/**
11+
* @template-implements TypeInterface<array-key>
12+
*/
1013
class ArrayKeyType implements TypeInterface
1114
{
1215
public function __construct(

src/Type/BoolType.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
use TypeLang\Mapper\Exception\Mapping\InvalidValueException;
88
use TypeLang\Mapper\Runtime\Context;
99

10+
/**
11+
* @template-implements TypeInterface<bool>
12+
*/
1013
class BoolType implements TypeInterface
1114
{
1215
public function match(mixed $value, Context $context): bool

src/Type/Builder/ArrayTypeBuilder.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public function build(
5555
TypeRepositoryInterface $types,
5656
TypeParserInterface $parser,
5757
): ArrayType {
58+
assert($statement instanceof NamedTypeNode);
59+
5860
$this->expectNoShapeFields($statement);
5961

6062
$arguments = $statement->arguments->items ?? [];

src/Type/Builder/CallableTypeBuilder.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use TypeLang\Mapper\Runtime\Parser\TypeParserInterface;
99
use TypeLang\Mapper\Runtime\Repository\TypeRepositoryInterface;
1010
use TypeLang\Mapper\Type\TypeInterface;
11+
use TypeLang\Parser\Node\Stmt\NamedTypeNode;
1112
use TypeLang\Parser\Node\Stmt\TypeStatement;
1213

1314
/**
@@ -41,6 +42,8 @@ public function build(
4142
TypeRepositoryInterface $types,
4243
TypeParserInterface $parser,
4344
): TypeInterface {
45+
assert($statement instanceof NamedTypeNode);
46+
4447
$this->expectNoShapeFields($statement);
4548
$this->expectNoTemplateArguments($statement);
4649

src/Type/Builder/IntRangeTypeBuilder.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public function build(
3535
TypeRepositoryInterface $types,
3636
TypeParserInterface $parser,
3737
): IntRangeType|IntType {
38+
assert($statement instanceof NamedTypeNode);
39+
3840
$this->expectNoShapeFields($statement);
3941

4042
$arguments = $statement->arguments->items ?? [];

src/Type/Builder/ListTypeBuilder.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public function build(
4848
TypeRepositoryInterface $types,
4949
TypeParserInterface $parser,
5050
): ListType {
51+
assert($statement instanceof NamedTypeNode);
52+
5153
$this->expectNoShapeFields($statement);
5254

5355
$arguments = $statement->arguments->items ?? [];

src/Type/Builder/NullTypeBuilder.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public function build(
4141
return new NullType();
4242
}
4343

44+
assert($statement instanceof NamedTypeNode);
45+
4446
$this->expectNoShapeFields($statement);
4547
$this->expectNoTemplateArguments($statement);
4648

src/Type/Builder/ObjectTypeBuilder.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use TypeLang\Mapper\Runtime\Parser\TypeParserInterface;
88
use TypeLang\Mapper\Runtime\Repository\TypeRepositoryInterface;
99
use TypeLang\Mapper\Type\ObjectType;
10+
use TypeLang\Parser\Node\Stmt\NamedTypeNode;
1011
use TypeLang\Parser\Node\Stmt\TypeStatement;
1112

1213
/**
@@ -19,6 +20,8 @@ public function build(
1920
TypeRepositoryInterface $types,
2021
TypeParserInterface $parser,
2122
): ObjectType {
23+
assert($statement instanceof NamedTypeNode);
24+
2225
$this->expectNoShapeFields($statement);
2326
$this->expectNoTemplateArguments($statement);
2427

src/Type/Builder/PsrContainerTypeBuilder.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use TypeLang\Mapper\Runtime\Parser\TypeParserInterface;
1010
use TypeLang\Mapper\Runtime\Repository\TypeRepositoryInterface;
1111
use TypeLang\Mapper\Type\TypeInterface;
12+
use TypeLang\Parser\Node\Stmt\NamedTypeNode;
1213
use TypeLang\Parser\Node\Stmt\TypeStatement;
1314

1415
/**
@@ -46,6 +47,8 @@ public function build(
4647
TypeRepositoryInterface $types,
4748
TypeParserInterface $parser,
4849
): TypeInterface {
50+
assert($statement instanceof NamedTypeNode);
51+
4952
$this->expectNoShapeFields($statement);
5053
$this->expectNoTemplateArguments($statement);
5154

src/Type/Builder/SimpleTypeBuilder.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use TypeLang\Mapper\Runtime\Parser\TypeParserInterface;
1010
use TypeLang\Mapper\Runtime\Repository\TypeRepositoryInterface;
1111
use TypeLang\Mapper\Type\TypeInterface;
12+
use TypeLang\Parser\Node\Stmt\NamedTypeNode;
1213
use TypeLang\Parser\Node\Stmt\TypeStatement;
1314

1415
/**
@@ -36,6 +37,8 @@ public function build(
3637
TypeRepositoryInterface $types,
3738
TypeParserInterface $parser,
3839
): TypeInterface {
40+
assert($statement instanceof NamedTypeNode);
41+
3942
$this->expectNoShapeFields($statement);
4043
$this->expectNoTemplateArguments($statement);
4144

0 commit comments

Comments
 (0)