From 071f14351331d77ca92ae4169c97d724d503a2d4 Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Tue, 24 Aug 2021 18:24:18 +0100 Subject: [PATCH 1/3] stan: hint that array can be any type --- src/JsonObjectBuilder.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/JsonObjectBuilder.php b/src/JsonObjectBuilder.php index 82078f0..ff07cfd 100644 --- a/src/JsonObjectBuilder.php +++ b/src/JsonObjectBuilder.php @@ -17,6 +17,9 @@ public function fromJsonString(string $jsonString):JsonObject { return $this->fromJsonDecoded($json); } + /** + * @param object|array|string|int|float|bool|null $jsonDecoded + */ public function fromJsonDecoded( object|array|string|int|float|bool|null $jsonDecoded ):JsonObject { @@ -68,4 +71,4 @@ public function fromJsonDecoded( return $jsonData; } -} \ No newline at end of file +} From 95e72f634186c8d8632e81db794242b701876710 Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Tue, 24 Aug 2021 18:25:01 +0100 Subject: [PATCH 2/3] stan: hint mixed return type --- src/JsonPrimitive/JsonNullPrimitive.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/JsonPrimitive/JsonNullPrimitive.php b/src/JsonPrimitive/JsonNullPrimitive.php index 2108444..0d2f244 100644 --- a/src/JsonPrimitive/JsonNullPrimitive.php +++ b/src/JsonPrimitive/JsonNullPrimitive.php @@ -2,7 +2,7 @@ namespace Gt\Json\JsonPrimitive; class JsonNullPrimitive extends JsonPrimitive { - public function getPrimitiveValue() { + public function getPrimitiveValue():mixed { return null; } -} \ No newline at end of file +} From 9629038bf7e8baa87f3080bf3004a8dcde96ad2e Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Tue, 24 Aug 2021 18:26:22 +0100 Subject: [PATCH 3/3] stan: stronger type hints --- src/JsonPrimitive/JsonArrayPrimitive.php | 4 ++-- src/JsonPrimitive/JsonPrimitive.php | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/JsonPrimitive/JsonArrayPrimitive.php b/src/JsonPrimitive/JsonArrayPrimitive.php index 5259cc0..5742221 100644 --- a/src/JsonPrimitive/JsonArrayPrimitive.php +++ b/src/JsonPrimitive/JsonArrayPrimitive.php @@ -2,8 +2,8 @@ namespace Gt\Json\JsonPrimitive; class JsonArrayPrimitive extends JsonPrimitive { - /** @return mixed[] */ + /** @return array */ public function getPrimitiveValue():array { return (array)$this->value; } -} \ No newline at end of file +} diff --git a/src/JsonPrimitive/JsonPrimitive.php b/src/JsonPrimitive/JsonPrimitive.php index 6a8d749..1b7ec56 100644 --- a/src/JsonPrimitive/JsonPrimitive.php +++ b/src/JsonPrimitive/JsonPrimitive.php @@ -4,10 +4,14 @@ use Gt\Json\JsonObject; abstract class JsonPrimitive extends JsonObject { + /** @var bool|int|float|string|array|null */ protected bool|int|float|string|array|null $value; - abstract public function getPrimitiveValue(); + abstract public function getPrimitiveValue():mixed; + /** + * @param bool|int|float|string|array|null $value + */ public function withPrimitiveValue( bool|int|float|string|array|null $value ):static { @@ -15,4 +19,4 @@ public function withPrimitiveValue( $clone->value = $value; return $clone; } -} \ No newline at end of file +}