-
-
Notifications
You must be signed in to change notification settings - Fork 54
feat: add support for range types #396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughThis change introduces comprehensive support for PostgreSQL range types within a Doctrine DBAL extension. It adds new abstract and concrete classes for range value objects (int, float, date, timestamp), custom DBAL types for each PostgreSQL range type, exception handling, and extensive unit and integration tests to validate serialization, deserialization, and value logic for all supported range types. Changes
Sequence Diagram(s)sequenceDiagram
participant App as Application Code
participant Doctrine as Doctrine DBAL
participant Type as Custom Range Type (e.g., Int4Range)
participant ValueObj as Range Value Object (e.g., Int4RangeValueObject)
participant DB as PostgreSQL
App->>Doctrine: Persist entity with range property
Doctrine->>Type: convertToDatabaseValue(ValueObj)
Type->>ValueObj: __toString()
Type->>DB: Store as range string
DB->>Doctrine: Retrieve range column as string
Doctrine->>Type: convertToPHPValue(range string)
Type->>ValueObj: fromString(range string)
Type->>App: Return ValueObj
Possibly related PRs
Poem
✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 7
♻️ Duplicate comments (4)
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php (1)
19-27
: Same critical issue as NumRange: Missing abstract method implementation.This class has the same issue as
NumRange
whereBaseRangeType
doesn't implement the abstractgetName()
method fromDoctrine\DBAL\Types\Type
.src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php (1)
19-27
: SamegetName()
omission as noted forInt8Range
.Once you fix it in
BaseRangeType
, this class will be covered automatically; otherwise add the per-class method.src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php (1)
19-27
: SamegetName()
omission as noted forInt8Range
.Fix centrally or locally to satisfy Doctrine’s contract.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php (1)
19-27
: SamegetName()
omission as noted forInt8Range
.Fix centrally or locally to satisfy Doctrine’s contract.
🧹 Nitpick comments (8)
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRange.php (1)
16-23
: Minor: consider normalising timezone to avoid ambiguoustsrange
output.
tsrange
is “timestamp without time zone”, yetDateTimeInterface
instances may carry one.
Today you silently format using the object’s current zone, which can lead to inconsistent persistence when callers pass mixed-zoneDateTimeImmutable
s.Optional hardenings:
- return $value->format('Y-m-d H:i:s.u'); + // Persist in UTC to avoid implicit zone shifts + $utc = $value->setTimezone(new \DateTimeZone('UTC')); + return $utc->format('Y-m-d H:i:s.u');or document the expectation in PHPDoc.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php (1)
87-87
: Consider extracting and documenting the complex regex pattern.The regex pattern is complex and would benefit from being a class constant with documentation explaining its components, or using extended regex with comments for better maintainability.
+ /** + * Regex pattern for parsing PostgreSQL range format: (lower_bracket)(lower_value),(upper_value)(upper_bracket) + * Supports quoted values for special characters. + */ + private const RANGE_PATTERN = '/^([[\(])("?[^",]*"?),("?[^",]*"?)([\]\)])$/'; + public static function fromString(string $rangeString): static { $rangeString = \trim($rangeString); if ($rangeString === self::EMPTY_RANGE_STRING) { // PostgreSQL's explicit empty state rather than mathematical tricks return new static(null, null, true, false, true); } - $pattern = '/^('.\preg_quote(self::BRACKET_LOWER_INCLUSIVE, '/').'|'.\preg_quote(self::BRACKET_LOWER_EXCLUSIVE, '/').')("?[^",]*"?),("?[^",]*"?)('.\preg_quote(self::BRACKET_UPPER_INCLUSIVE, '/').'|'.\preg_quote(self::BRACKET_UPPER_EXCLUSIVE, '/').')$/'; + $pattern = self::RANGE_PATTERN; if (!\preg_match($pattern, $rangeString, $matches)) {tests/Integration/MartinGeorgiev/Doctrine/DBAL/Types/DBALTypesTest.php (1)
186-191
: Consider enhancing range assertion to verify bound values.The current assertion only checks string representation and empty state. For thorough integration testing, consider also verifying that the actual bound values are preserved correctly through the database roundtrip, especially for numeric precision and timezone handling.
private function assertRangeEquals(RangeValueObject $rangeValueObject, mixed $actual, string $typeName): void { $this->assertInstanceOf(RangeValueObject::class, $actual, 'Failed asserting that value is a Range object for type '.$typeName); $this->assertEquals($rangeValueObject->__toString(), $actual->__toString(), 'Failed asserting that range string representations are equal for type '.$typeName); $this->assertEquals($rangeValueObject->isEmpty(), $actual->isEmpty(), 'Failed asserting that range empty states are equal for type '.$typeName); + + // For non-empty ranges, verify bounds are preserved + if (!$rangeValueObject->isEmpty() && method_exists($rangeValueObject, 'getLower') && method_exists($rangeValueObject, 'getUpper')) { + $this->assertEquals($rangeValueObject->getLower(), $actual->getLower(), 'Failed asserting that lower bounds are equal for type '.$typeName); + $this->assertEquals($rangeValueObject->getUpper(), $actual->getUpper(), 'Failed asserting that upper bounds are equal for type '.$typeName); + } }tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TsRangeTest.php (1)
52-58
: Consider adding mixed type parameter and non-string test cases.Based on the project pattern for database-to-PHP conversion tests, the
can_transform_from_sql_value
method should usemixed
type for the$sqlValue
parameter and include non-string test cases in the data provider, following the pattern used in classes like InetTest, CidrTest, and MacaddrTest.- public function can_transform_from_sql_value(string $sqlValue, TsRangeValueObject $tsRangeValueObject): void + public function can_transform_from_sql_value(mixed $sqlValue, TsRangeValueObject $tsRangeValueObject): voidConsider adding non-string test cases to
providesValidSqlValues()
to ensure the type properly handles unexpected input types.tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/DateRangeTest.php (1)
52-58
: Consider adding mixed type parameter and non-string test cases.Similar to other database-to-PHP conversion tests in this project, this method should use
mixed
type for the$sqlValue
parameter and include non-string test cases in the data provider.- public function can_transform_from_sql_value(string $sqlValue, DateRangeValueObject $dateRangeValueObject): void + public function can_transform_from_sql_value(mixed $sqlValue, DateRangeValueObject $dateRangeValueObject): voidtests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/NumRangeTest.php (1)
52-58
: Consider adding mixed type parameter and non-string test cases.Following the project pattern for database-to-PHP conversion tests, consider using
mixed
type for the$sqlValue
parameter and adding non-string test cases to the data provider.- public function can_transform_from_sql_value(string $sqlValue, NumericRange $numericRange): void + public function can_transform_from_sql_value(mixed $sqlValue, NumericRange $numericRange): voidtests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int4RangeTest.php (2)
108-134
: Add more test cases to match the comprehensive PHP values coverage.The
providesValidSqlValues
data provider only covers 3 scenarios whileprovidesValidPHPValues
covers 6 scenarios including inclusive/exclusive bounds, infinite bounds, and max int4 values. Consider adding the missing test cases for consistency.public static function providesValidSqlValues(): \Generator { yield 'simple range' => [ '[1,1000)', new Int4RangeValueObject(1, 1000), ]; + yield 'inclusive range' => [ + '[1,10]', + new Int4RangeValueObject(1, 10, true, true), + ]; + yield 'exclusive range' => [ + '(1,10)', + new Int4RangeValueObject(1, 10, false, false), + ]; + yield 'lower infinite' => [ + '[,10)', + new Int4RangeValueObject(null, 10), + ]; + yield 'upper infinite' => [ + '[1,)', + new Int4RangeValueObject(1, null), + ]; yield 'empty range' => [ 'empty', Int4RangeValueObject::empty(), ]; + yield 'max int4 values' => [ + '[-2147483648,2147483647)', + new Int4RangeValueObject(-2147483648, 2147483647), + ]; }
68-74
: Missing test for empty string conversion from SQL value.The test class has a dedicated test for empty string conversion (
can_transform_empty_string_from_sql_value
) but this scenario is missing from the data provider testing. According to the retrieved learnings, database-to-PHP conversion tests should include non-string test cases.Consider adding an empty string test case to the data provider or ensuring the existing empty string test covers all edge cases.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (31)
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/Exceptions/InvalidRangeForDatabaseException.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4Range.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8Range.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRange.php
(1 hunks)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRange.php
(1 hunks)tests/Integration/MartinGeorgiev/Doctrine/DBAL/Types/DBALTypesTest.php
(4 hunks)tests/Integration/MartinGeorgiev/TestCase.php
(2 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/DateRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int4RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int8RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/NumRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TsRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TstzRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php
(1 hunks)
🧰 Additional context used
🧠 Learnings (32)
📓 Common learnings
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-11T17:02:51.971Z
Learning: The PostgreSQL-for-doctrine library implements the JSON array element existence check using the `RIGHT_EXISTS_ON_LEFT` DQL function, which maps to PostgreSQL's `?` operator. This is used for checking if a specific value exists in a JSONB array column.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#277
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonValueTest.php:19-35
Timestamp: 2025-03-13T15:00:16.619Z
Learning: The JsonValue implementation in postgres-for-doctrine has documented limitations: it does not support RETURNING type, DEFAULT clause, ON ERROR clause, ON EMPTY clause, and other advanced PostgreSQL JSON_VALUE features due to DQL limitations.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8Range.php (3)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
tests/Integration/MartinGeorgiev/TestCase.php (10)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-11T17:02:51.971Z
Learning: The PostgreSQL-for-doctrine library implements the JSON array element existence check using the `RIGHT_EXISTS_ON_LEFT` DQL function, which maps to PostgreSQL's `?` operator. This is used for checking if a specific value exists in a JSONB array column.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRange.php (6)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
src/MartinGeorgiev/Doctrine/DBAL/Types/Exceptions/InvalidRangeForDatabaseException.php (2)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php (4)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php (8)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php (4)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRange.php (6)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php (6)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php (8)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4Range.php (3)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php (3)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8RangeTest.php (7)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-04-17T12:29:38.149Z
Learning: All new features in this repository must include proper test coverage before approval.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php (2)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php (3)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php (7)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-04-17T12:29:38.149Z
Learning: All new features in this repository must include proper test coverage before approval.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TsRangeTest.php (10)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: karpilin
PR: martin-georgiev/postgresql-for-doctrine#386
File: tests/Integration/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ToTimestampTest.php:34-39
Timestamp: 2025-05-27T16:10:35.054Z
Learning: When reviewing PostgreSQL formatting function tests, the error handling behavior should match PostgreSQL's actual implementation rather than assuming consistency across all formatting functions, as different functions may handle invalid inputs differently.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRange.php (3)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4RangeTest.php (6)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int4RangeTest.php (9)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/DateRangeTest.php (8)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
tests/Integration/MartinGeorgiev/Doctrine/DBAL/Types/DBALTypesTest.php (8)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/NumRangeTest.php (10)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: karpilin
PR: martin-georgiev/postgresql-for-doctrine#386
File: tests/Integration/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ToTimestampTest.php:34-39
Timestamp: 2025-05-27T16:10:35.054Z
Learning: When reviewing PostgreSQL formatting function tests, the error handling behavior should match PostgreSQL's actual implementation rather than assuming consistency across all formatting functions, as different functions may handle invalid inputs differently.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php (7)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-04-17T12:29:38.149Z
Learning: All new features in this repository must include proper test coverage before approval.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TstzRangeTest.php (10)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: karpilin
PR: martin-georgiev/postgresql-for-doctrine#386
File: tests/Integration/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ToTimestampTest.php:34-39
Timestamp: 2025-05-27T16:10:35.054Z
Learning: When reviewing PostgreSQL formatting function tests, the error handling behavior should match PostgreSQL's actual implementation rather than assuming consistency across all formatting functions, as different functions may handle invalid inputs differently.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int8RangeTest.php (10)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: karpilin
PR: martin-georgiev/postgresql-for-doctrine#386
File: tests/Integration/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ToTimestampTest.php:34-39
Timestamp: 2025-05-27T16:10:35.054Z
Learning: When reviewing PostgreSQL formatting function tests, the error handling behavior should match PostgreSQL's actual implementation rather than assuming consistency across all formatting functions, as different functions may handle invalid inputs differently.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRange.php (2)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
🧬 Code Graph Analysis (5)
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8Range.php (2)
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php (1)
Int8Range
(19-27)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php (1)
BaseIntegerRange
(14-47)
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php (3)
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8Range.php (1)
Int8Range
(14-14)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php (2)
Range
(16-145)fromString
(78-100)src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php (2)
BaseRangeType
(21-71)createFromString
(70-70)
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php (8)
src/MartinGeorgiev/Doctrine/DBAL/Types/Exceptions/InvalidRangeForDatabaseException.php (3)
InvalidRangeForDatabaseException
(14-32)forInvalidType
(16-24)forInvalidFormat
(26-31)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php (1)
Range
(16-145)src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php (1)
createFromString
(23-26)src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php (1)
createFromString
(23-26)src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php (1)
createFromString
(23-26)src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php (1)
createFromString
(23-26)src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php (1)
createFromString
(23-26)src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php (1)
createFromString
(23-26)
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php (3)
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php (4)
Range
(16-145)__construct
(28-34)compareBounds
(74-74)parseValue
(102-102)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php (3)
__construct
(16-24)compareBounds
(26-29)parseValue
(36-46)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRange.php (3)
__construct
(18-38)compareBounds
(40-43)parseValue
(54-65)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/NumRangeTest.php (4)
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php (1)
NumRange
(19-27)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRange.php (1)
NumericRange
(16-67)src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php (3)
getSQLDeclaration
(23-26)convertToDatabaseValue
(28-39)convertToPHPValue
(46-65)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php (1)
empty
(136-139)
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.14 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer 1.2
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.18 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.14 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.18 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.14 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.18 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
src/MartinGeorgiev/Doctrine/DBAL/Types/NumRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\NumRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/TsRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TsRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\DateRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int8Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int8Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\Int4Range contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/TstzRange.php
[failure] 19-19:
Non-abstract class MartinGeorgiev\Doctrine\DBAL\Types\TstzRange contains abstract method getName() from class Doctrine\DBAL\Types\Type.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 PHPMD (2.15.0)
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
23-23: Avoid unused parameters such as '$column'. (Unused Code Rules)
(UnusedFormalParameter)
23-23: Avoid unused parameters such as '$platform'. (Unused Code Rules)
(UnusedFormalParameter)
28-28: Avoid unused parameters such as '$platform'. (Unused Code Rules)
(UnusedFormalParameter)
46-46: Avoid unused parameters such as '$platform'. (Unused Code Rules)
(UnusedFormalParameter)
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 3.0 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 3.0 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 3.0 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 3.0 + Doctrine Lexer latest
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🪛 GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer 3.0
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
[failure] 25-25:
Method MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType::getSQLDeclaration() should return string but returns mixed.
[failure] 25-25:
Access to undefined constant static(MartinGeorgiev\Doctrine\DBAL\Types\BaseRangeType<T of MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range>)::TYPE_NAME.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php
[failure] 33-33:
Cannot cast mixed to string.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseIntegerRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php
[failure] 34-34:
Cannot cast mixed to int.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 34-34:
Cannot call method format() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 28-28:
Cannot call method getTimestamp() on mixed.
[failure] 14-14:
Class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseTimestampRange extends generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: T
🔇 Additional comments (47)
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8Range.php (1)
14-14
: LGTM! Clean value object implementation.The minimal implementation correctly leverages the
BaseIntegerRange
base class and serves as a properly typed container for PostgreSQL INT8RANGE values. Thefinal
keyword appropriately prevents inheritance for this value object.tests/Integration/MartinGeorgiev/TestCase.php (2)
20-20
: LGTM! Proper integration of new range types.The import statements for the new range types are correctly added and follow the established alphabetical ordering pattern.
Also applies to: 24-25, 31-31, 37-38
169-169
: LGTM! Consistent type registration.The new range types are properly registered in the
$typesMap
array with their correct PostgreSQL type names. This follows the established pattern and enables the types for integration testing.Also applies to: 173-174, 180-180, 186-187
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRange.php (1)
16-24
: LGTM! Proper timestamp with timezone formatting.The implementation correctly validates that values implement
DateTimeInterface
and formats them using the appropriate pattern'Y-m-d H:i:s.uP'
which includes microseconds and timezone offset. This aligns with PostgreSQL's TSTZRANGE format requirements.src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4Range.php (1)
14-41
: Well-implemented INT4 range validation!The implementation correctly validates 32-bit integer bounds and provides clear error messages. The constants accurately represent the INT4 range limits.
src/MartinGeorgiev/Doctrine/DBAL/Types/Exceptions/InvalidRangeForDatabaseException.php (1)
14-32
: Clean exception design with helpful error messages!The static factory methods provide clear context for different error scenarios, and using
get_debug_type()
ensures detailed type information in error messages.src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php (1)
56-58
: Verify empty string handling behavior.The method returns
null
for empty strings. Please confirm this is the intended behavior for PostgreSQL range types, as it differs from the error handling for other invalid formats.src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseIntegerRange.php (1)
36-46
: Excellent integer validation logic!The
parseValue
method's validation by comparing the string representation of the parsed integer with the original string is a robust way to catch invalid inputs like "123.45" or "123abc".src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRange.php (1)
26-35
: Excellent handling of timestamp microsecond precision!The implementation correctly handles the limitation of
getTimestamp()
by separately comparing microseconds. The explanatory comment is helpful for future maintainers.tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4RangeTest.php (1)
14-116
: Comprehensive test coverage!The test suite thoroughly covers all aspects of the Int4Range value object including edge cases, bounds validation, and data-driven testing with good scenarios.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php (1)
14-139
: Excellent timezone and microseconds handling tests!The test suite properly validates timezone preservation and microseconds precision, which are critical for PostgreSQL tstzrange compatibility.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TstzRangeTest.php (1)
26-106
: Well-structured DBAL type tests!The tests properly validate SQL declaration and bidirectional conversions, including proper handling of PostgreSQL's special 'empty' range string.
tests/Integration/MartinGeorgiev/Doctrine/DBAL/Types/DBALTypesTest.php (1)
107-126
: Good integration test coverage for all range types!The test cases cover all six PostgreSQL range types with appropriate scenarios including empty and infinite ranges.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TsRangeTest.php (2)
68-88
: LGTM! Comprehensive test data coverage.The data providers cover essential test scenarios including simple ranges, hour ranges, and empty ranges. The microsecond precision formatting for timestamps is correctly implemented.
105-113
: LGTM! Proper PostgreSQL empty range handling.The dedicated test for PostgreSQL's 'empty' range string correctly verifies the conversion to an empty TsRangeValueObject and validates both the string representation and emptiness state.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/DateRangeTest.php (1)
68-86
: LGTM! Excellent use of factory methods.The data provider demonstrates good coverage with practical examples including the convenient
year()
andsingleDay()
factory methods, which enhance the usability of the DateRange value object.src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRange.php (3)
25-35
: LGTM! Proper numeric validation.The constructor correctly validates that bounds are numeric using
is_numeric()
, which appropriately handles integers, floats, and numeric strings. The error messages are descriptive and helpful for debugging.
54-66
: LGTM! Excellent type preservation implementation.The
parseValue
method correctly preserves the original numeric type by returning integers when the float value equals its integer representation, and floats otherwise. This aligns perfectly with the project's goal of preserving type information during transformations between PostgreSQL and PHP.
40-43
: LGTM! Correct numeric comparison implementation.Using float casting for comparison ensures consistent ordering behavior across all numeric types while maintaining precision for the comparison operation.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/NumRangeTest.php (2)
68-74
: LGTM! Excellent edge case coverage.The additional test for empty string input demonstrates thorough consideration of edge cases and aligns with the BaseRangeType implementation that treats empty strings as null.
76-102
: LGTM! Comprehensive numeric range test coverage.The data provider covers excellent scenarios including mixed integer and float values, all boundary types (inclusive/exclusive), infinite bounds, and empty ranges. This thoroughly validates the NumericRange functionality.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8RangeTest.php (3)
50-57
: LGTM! Excellent edge case testing with large values.Testing with
PHP_INT_MIN
andPHP_INT_MAX
ensures the Int8Range properly handles the full range of 64-bit integers, which is crucial for PostgreSQL int8range compatibility.
76-89
: LGTM! Comprehensive contains method test coverage.The data provider covers all essential boundary conditions including values inside the range, boundary values respecting inclusivity/exclusivity, values outside the range, null handling, and empty range behavior.
91-100
: LGTM! Thorough string parsing test coverage.The fromString test cases cover all PostgreSQL range string formats including different bracket types, infinite bounds, empty ranges, and large values. This ensures robust parsing capability for all valid PostgreSQL int8range representations.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int4RangeTest.php (1)
26-32
: LGTM! Well-structured SQL declaration test.The test correctly verifies that the Int4Range type returns the expected PostgreSQL type name.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php (3)
58-71
: Excellent comprehensive testing of the contains method.The data provider covers all important scenarios including boundary conditions, null values, and empty ranges. The use of
mixed
type for the value parameter follows the project's established patterns for database-to-PHP conversion testing.
83-99
: Well-implemented exception testing for invalid bounds.The tests properly validate that invalid numeric bounds throw appropriate exceptions with descriptive messages. This ensures robust input validation.
73-81
: Good coverage of string parsing scenarios.The
providesFromStringTestCases
data provider covers various range formats including infinite bounds and empty ranges, ensuring robust parsing functionality.tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php (3)
83-90
: Excellent attention to microseconds precision.This test ensures that the TsRange properly handles microsecond precision in timestamps, which is crucial for accurate timestamp range operations. This demonstrates thorough consideration of PostgreSQL timestamp behavior.
92-108
: Comprehensive contains method testing with proper boundary handling.The data provider covers all critical scenarios including boundary conditions (inclusive lower, exclusive upper), null values, and empty ranges. The use of
mixed
type follows project conventions.
110-129
: Well-structured string parsing test coverage.The
providesFromStringTestCases
covers various timestamp range formats including inclusive ranges, infinite bounds, and empty ranges, ensuring robust parsing functionality.src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRange.php (4)
25-35
: Excellent input validation with descriptive error messages.The constructor properly validates that both bounds are DateTimeInterface instances and provides clear, informative error messages using
gettype()
to show the actual type received.
40-43
: Efficient date comparison implementation.Using timestamp comparison with the spaceship operator is an efficient and reliable way to compare dates, handling timezone considerations properly.
54-65
: Robust error handling in parseValue method.The method properly catches exceptions during date parsing and re-throws them with enhanced context including the original error message. This provides excellent debugging information while maintaining the expected exception type.
67-89
: Well-designed factory methods for common use cases.The static factory methods (
singleDay
,year
,month
) provide convenient ways to create common date ranges. The consistent use of inclusive lower and exclusive upper bounds follows PostgreSQL range conventions.tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php (12)
1-11
: LGTM - Clean imports and namespace setupThe file header, imports, and namespace follow the expected conventions for this project. The use of PHPUnit\Framework\TestCase is appropriate for unit tests in this namespace.
14-23
: Well-structured basic range creation testThe test correctly validates DateRange creation with start and end dates, verifying both string representation and emptiness state. The expected string format
[2023-01-01,2023-12-31)
properly represents PostgreSQL's daterange format with left-inclusive, right-exclusive bounds.
25-32
: Proper empty range testingThe test correctly validates the empty range factory method and its expected behavior.
34-41
: Infinite range test validates PostgreSQL formatThe test correctly validates the infinite range factory method with the expected
(,)
string representation for PostgreSQL's infinite daterange format.
43-51
: Single day range logic is correctThe test validates that a single day range correctly spans from the given date to the next day (exclusive), which is the expected behavior for date ranges.
53-60
: Year range spans correctlyThe test validates that a year range correctly spans from January 1st to January 1st of the next year (exclusive).
62-69
: Month range spans correctlyThe test validates that a month range correctly spans from the first day of the month to the first day of the next month (exclusive).
71-76
: Contains method test follows project patternsThe test method correctly uses the
mixed
type for the value parameter, which aligns with the project's pattern for database-to-PHP conversion tests as mentioned in the learnings.
78-86
: String parsing test validates both representation and stateThe test properly validates both the string representation and the isEmpty state when parsing from string, ensuring comprehensive validation of the parsing functionality.
88-104
: Exception tests validate proper error handlingThe exception tests correctly validate that invalid constructor arguments throw appropriate
InvalidArgumentException
with descriptive messages.
106-122
: Comprehensive contains test coverageThe data provider covers all the essential scenarios for the contains method:
- Date within range
- Lower bound inclusion
- Upper bound exclusion
- Dates before/after range
- Null handling
- Empty range behavior
This provides excellent test coverage for the contains functionality.
124-143
: Thorough string parsing test casesThe data provider covers comprehensive parsing scenarios including:
- Simple ranges with default bounds
- Inclusive ranges with explicit bounds
- Infinite lower/upper bounds
- Empty ranges
This provides excellent coverage for the string parsing functionality.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int8RangeTest.php
Outdated
Show resolved
Hide resolved
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int8RangeTest.php
Outdated
Show resolved
Hide resolved
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int8RangeTest.php
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/DateRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int4RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int8RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/NumRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TsRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TstzRangeTest.php
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/NumRangeTest.php
🚧 Files skipped from review as they are similar to previous changes (4)
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TsRangeTest.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/DateRangeTest.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TstzRangeTest.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int4RangeTest.php
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-11T17:02:51.971Z
Learning: The PostgreSQL-for-doctrine library implements the JSON array element existence check using the `RIGHT_EXISTS_ON_LEFT` DQL function, which maps to PostgreSQL's `?` operator. This is used for checking if a specific value exists in a JSONB array column.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#277
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonValueTest.php:19-35
Timestamp: 2025-03-13T15:00:16.619Z
Learning: The JsonValue implementation in postgres-for-doctrine has documented limitations: it does not support RETURNING type, DEFAULT clause, ON ERROR clause, ON EMPTY clause, and other advanced PostgreSQL JSON_VALUE features due to DQL limitations.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int8RangeTest.php (12)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-04-17T12:29:38.149Z
Learning: All new features in this repository must include proper test coverage before approval.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#309
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/BaseTypeTest.php:0-0
Timestamp: 2025-03-26T23:51:33.709Z
Learning: The requiresSQLCommentHint() method is intentionally kept in tests to support backwards compatibility with older Doctrine DBAL versions, even though it's deprecated in newer versions and triggers static analysis warnings. The method isn't used in production code.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-04-23T20:20:39.026Z
Learning: In this project, unit tests should avoid using reflection (ReflectionMethod) to test protected methods directly, and instead use fixtures to test through public interfaces, even if it means slightly lower test coverage.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php (8)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-04-23T20:20:39.026Z
Learning: In this project, unit tests should avoid using reflection (ReflectionMethod) to test protected methods directly, and instead use fixtures to test through public interfaces, even if it means slightly lower test coverage.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
🧬 Code Graph Analysis (1)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php (4)
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php (3)
BaseRangeType
(21-66)convertToDatabaseValue
(23-34)convertToPHPValue
(41-60)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php (3)
Range
(16-145)__toString
(36-49)isEmpty
(56-72)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/NumRangeTest.php (5)
createRangeType
(12-15)getExpectedTypeName
(17-20)getExpectedValueObjectClass
(27-30)provideValidTransformations
(32-62)getExpectedSqlDeclaration
(22-25)src/MartinGeorgiev/Doctrine/DBAL/Types/BaseType.php (1)
getName
(31-36)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer latest
🔇 Additional comments (3)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/Int8RangeTest.php (1)
1-67
: LGTM! Comprehensive test coverage for Int8Range type.The test class properly implements the required abstract methods and provides comprehensive test coverage with 7 different scenarios in the data provider, including edge cases like infinite bounds, max bounds, empty ranges, and null values. The implementation follows the established pattern for range type testing.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php (2)
16-29
: Well-structured abstract test base class.The class provides a solid foundation for testing range types with proper mock setup and fixture initialization. The design follows good testing practices.
31-83
: Comprehensive test coverage for range type functionality.The test methods cover all essential aspects of range type behavior: type naming, bidirectional conversion between PHP and database values, null handling, and PostgreSQL's special 'empty' range string. The data provider pattern is used effectively for testing multiple scenarios.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php
Outdated
Show resolved
Hide resolved
… with complex annotations that don't provide real value
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Nitpick comments (5)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php (1)
130-131
: Consider adding test for malformed range stringsWhile you test invalid format with
{1,2}
, consider adding more edge cases like unclosed brackets[1,2
, missing commas[1 2)
, or extra spaces.Add more test cases:
$this->fixture->convertToPHPValue('{1,2}', $this->platform); + +// Additional test methods for edge cases: +#[Test] +public function throws_exception_for_unclosed_bracket(): void +{ + $this->expectException(InvalidRangeForPHPException::class); + $this->fixture->convertToPHPValue('[1,2', $this->platform); +} + +#[Test] +public function throws_exception_for_missing_comma(): void +{ + $this->expectException(InvalidRangeForPHPException::class); + $this->fixture->convertToPHPValue('[1 2)', $this->platform); +}tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRangeTestCase.php (1)
102-103
: Good test for microsecond precisionThe microsecond precision test is essential for timestamp ranges. Consider documenting that PostgreSQL timestamp types support microsecond precision (6 decimal places).
Add a comment explaining PostgreSQL's microsecond support:
#[Test] public function can_handle_microsecond_precision(): void { + // PostgreSQL timestamp types support microsecond precision (6 decimal places) $earlier = $this->createTimeWithMicroseconds('2023-01-01 10:00:00.123456');
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php (3)
105-125
: Remove unused test method.The method
getBoundaryTestCases()
is not used anywhere in this test class and doesn't appear to be an abstract method requirement from the parent class.Either remove this unused method or refactor it into a proper test method with a data provider:
- protected function getBoundaryTestCases(): array - { - return [ - 'contains lower bound (inclusive)' => [ - 'value' => new \DateTimeImmutable('2023-01-01 10:00:00'), - 'expected' => true, - ], - 'does not contain value before range' => [ - 'value' => new \DateTimeImmutable('2023-01-01 09:00:00'), - 'expected' => false, - ], - 'does not contain upper bound (exclusive)' => [ - 'value' => new \DateTimeImmutable('2023-01-01 18:00:00'), - 'expected' => false, - ], - 'contains value in middle' => [ - 'value' => new \DateTimeImmutable('2023-01-01 14:00:00'), - 'expected' => true, - ], - ]; - }
127-163
: Remove or utilize unused test cases.The method
getComparisonTestCases()
contains valuable test cases for empty range scenarios but is not used anywhere in the test class.Either remove this method or create a test that uses these cases:
+ #[Test] + #[DataProvider('getComparisonTestCases')] + public function test_empty_range_scenarios(TsRange $range, bool $expectedEmpty): void + { + self::assertEquals($expectedEmpty, $range->isEmpty()); + } + - protected function getComparisonTestCases(): array + public static function getComparisonTestCases(): array { return [ 'reverse range should be empty' => [ - 'range' => new TsRange( + new TsRange( new \DateTimeImmutable('2023-01-01 18:00:00'), new \DateTimeImmutable('2023-01-01 10:00:00') ), - 'expectedEmpty' => true, + true, ], // ... rest of the cases ]; }
249-258
: Remove duplicate microseconds test.This test
can_handle_microseconds_in_formatting()
is functionally identical to the earlier testhandles_microseconds_correctly()
(lines 218-226). Both create a TsRange with microseconds and verify the string representation.Remove this duplicate test:
- #[Test] - public function can_handle_microseconds_in_formatting(): void - { - $tsRange = new TsRange( - new \DateTimeImmutable('2023-01-01 10:00:00.123456'), - new \DateTimeImmutable('2023-01-01 18:00:00.654321') - ); - - self::assertEquals('[2023-01-01 10:00:00.123456,2023-01-01 18:00:00.654321)', (string) $tsRange); - }
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRangeTestCase.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4RangeTest.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8RangeTest.php
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-04-17T12:29:38.149Z
Learning: All new features in this repository must include proper test coverage before approval.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-11T17:02:51.971Z
Learning: The PostgreSQL-for-doctrine library implements the JSON array element existence check using the `RIGHT_EXISTS_ON_LEFT` DQL function, which maps to PostgreSQL's `?` operator. This is used for checking if a specific value exists in a JSONB array column.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#277
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonValueTest.php:19-35
Timestamp: 2025-03-13T15:00:16.619Z
Learning: The JsonValue implementation in postgres-for-doctrine has documented limitations: it does not support RETURNING type, DEFAULT clause, ON ERROR clause, ON EMPTY clause, and other advanced PostgreSQL JSON_VALUE features due to DQL limitations.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php (8)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-04-23T20:20:39.026Z
Learning: In this project, unit tests should avoid using reflection (ReflectionMethod) to test protected methods directly, and instead use fixtures to test through public interfaces, even if it means slightly lower test coverage.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php (7)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: karpilin
PR: martin-georgiev/postgresql-for-doctrine#386
File: tests/Integration/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ToTimestampTest.php:34-39
Timestamp: 2025-05-27T16:10:35.054Z
Learning: PostgreSQL's to_timestamp function returns a fallback result (like '2005-01-01 00:00:00+00') when given an invalid format string, rather than throwing an exception. This behavior is different from some other formatting functions and should be tested accordingly.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRangeTestCase.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php (6)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: karpilin
PR: martin-georgiev/postgresql-for-doctrine#386
File: tests/Integration/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ToTimestampTest.php:34-39
Timestamp: 2025-05-27T16:10:35.054Z
Learning: PostgreSQL's to_timestamp function returns a fallback result (like '2005-01-01 00:00:00+00') when given an invalid format string, rather than throwing an exception. This behavior is different from some other formatting functions and should be tested accordingly.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer 1.2
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.14 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 3.0 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.18 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.4 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.14 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 3.0 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 3.0 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.3 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.18 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.2 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 3.0 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer latest
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
🪛 GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
[failure] 147-147:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::provideContainsTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 142-142:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::getComparisonTestCases() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 128-128:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createBoundaryTestRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 123-123:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::parseFromString() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 113-113:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInclusiveRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 108-108:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createInfiniteRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 103-103:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createEmptyRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 93-93:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::createSimpleRange() return type with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range does not specify its types: R
[failure] 59-59:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_parse_from_string() has parameter $expectedRange with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
[failure] 52-52:
Method Tests\Unit\MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\BaseRangeTestCase::can_check_contains() has parameter $range with generic class MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range but does not specify its types: R
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: PostgreSQL 16 + PHP 8.4
- GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer 1.2
- GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer latest
- GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer latest
- GitHub Check: PHP 8.2 + Doctrine ORM 2.14 + Doctrine Lexer latest
- GitHub Check: PHP 8.1 + Doctrine ORM 2.18 + Doctrine Lexer latest
🔇 Additional comments (2)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php (1)
7-7
: Ignore the import suggestion—Range is already imported and declared as a genericThe
use MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range;
statement is correct, and theRange
class is annotated with@template R of int|float|\DateTimeInterface
. The static-analysis warnings you’re seeing stem from usingRange
without specifying its type parameter in method signatures, not from a missing import. If you’d like to satisfy your analyzer, add docblock annotations on each test method (e.g.@param Range<int> $range
) rather than changing the import.Likely an incorrect or invalid review comment.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRangeTestCase.php (1)
14-15
: Well-structured timestamp test base classExcellent design extending BaseRangeTestCase with timestamp-specific test patterns. The abstract methods provide clear extension points for concrete implementations.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php
Outdated
Show resolved
Hide resolved
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php
Outdated
Show resolved
Hide resolved
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php
Outdated
Show resolved
Hide resolved
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php
Outdated
Show resolved
Hide resolved
Is it possible to use for example the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php (1)
149-202
: Consider more precise assertions for string formatting tests.While the current approach using
assertStringContainsString
works, it's somewhat indirect. Consider testing the actual parsed values or using exact string comparisons where possible for more precise validation.However, given that these tests are validating PostgreSQL range string formatting, the current approach is acceptable and provides adequate coverage.
Example of more precise assertion:
$numericRange = NumericRange::fromString('[42,100)'); -self::assertStringContainsString('42', (string) $numericRange); +self::assertEquals('[42,100)', (string) $numericRange);
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-11T17:02:51.971Z
Learning: The PostgreSQL-for-doctrine library implements the JSON array element existence check using the `RIGHT_EXISTS_ON_LEFT` DQL function, which maps to PostgreSQL's `?` operator. This is used for checking if a specific value exists in a JSONB array column.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#277
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonValueTest.php:19-35
Timestamp: 2025-03-13T15:00:16.619Z
Learning: The JsonValue implementation in postgres-for-doctrine has documented limitations: it does not support RETURNING type, DEFAULT clause, ON ERROR clause, ON EMPTY clause, and other advanced PostgreSQL JSON_VALUE features due to DQL limitations.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (19)
- GitHub Check: PHP 8.4 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
- GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer latest
- GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer 1.2
- GitHub Check: PHP 8.4 + Doctrine ORM 2.18 + Doctrine Lexer latest
- GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer 3.0
- GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer latest
- GitHub Check: PHP 8.3 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
- GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer latest
- GitHub Check: PHP 8.3 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
- GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
- GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer 2.1
- GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer latest
- GitHub Check: PHP 8.2 + Doctrine ORM 3.0 + Doctrine Lexer latest
- GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer latest
- GitHub Check: PostgreSQL 17 + PHP 8.4
- GitHub Check: PostgreSQL 16 + PHP 8.4
- GitHub Check: PostgreSQL 17 + PHP 8.3
- GitHub Check: PostgreSQL 16 + PHP 8.2
- GitHub Check: PostgreSQL 17 + PHP 8.1
🔇 Additional comments (5)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php (5)
1-11
: LGTM: Clean file structure and appropriate imports.The file follows proper PHP standards with strict typing, correct namespace, and all necessary imports for the test functionality.
12-47
: LGTM: Proper implementation of abstract base class methods.The class correctly extends
BaseRangeTestCase
and implements all required abstract methods. The numeric range examples use appropriate float values (1.5, 10.7) and the expected string format follows PostgreSQL range conventions.
54-86
: LGTM: Comprehensive boundary and comparison test cases.The test case data providers cover essential scenarios including boundary inclusivity/exclusivity, reverse ranges, equal bounds, and edge cases. This provides thorough coverage for range validation logic.
88-108
: LGTM: Well-structured data providers with good edge case coverage.Both data providers include appropriate test cases:
provideContainsTestCases
: Tests boundary conditions and null handlingprovideFromStringTestCases
: Covers various range formats including infinite and empty rangesThe test cases align with PostgreSQL range syntax expectations.
110-147
: LGTM: Proper exception handling validation.The exception tests correctly verify:
- Invalid bounds throw
InvalidArgumentException
with appropriate messages- Runtime validation errors throw
InvalidRangeForPHPException
- Invalid parsing throws
InvalidArgumentException
The tests use proper PHPUnit expectation setup and test realistic error scenarios.
- Add proper template annotations to test base classes and suppress. - PHPStan errors for lack of covariant generics support. - Maintains DRY test structure while ensuring static analysis passes cleanly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php (1)
247-257
: Improve test to actually use different DateTime implementations.The test method name suggests testing different DateTime implementations, but both variables use
DateTimeImmutable
. Consider using bothDateTime
andDateTimeImmutable
to truly test differentDateTimeInterface
implementations.public function can_handle_different_datetime_implementations(): void { - $dateTime = new \DateTimeImmutable('2023-01-01 10:00:00+02:00'); + $dateTime = new \DateTime('2023-01-01 10:00:00+02:00'); $dateTimeImmutable = new \DateTimeImmutable('2023-01-01 18:00:00-05:00'); $tstzRange = new TstzRange($dateTime, $dateTimeImmutable); $formatted = (string) $tstzRange; self::assertStringContainsString('+02:00', $formatted); self::assertStringContainsString('-05:00', $formatted); }tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php (2)
221-229
: Remove duplicate test for microseconds handling.The tests
handles_microseconds_correctly()
andcan_handle_microseconds_in_formatting()
are testing identical functionality with the same test data and assertions.Remove the duplicate test:
- #[Test] - public function can_handle_microseconds_in_formatting(): void - { - $tsRange = new TsRange( - new \DateTimeImmutable('2023-01-01 10:00:00.123456'), - new \DateTimeImmutable('2023-01-01 18:00:00.654321') - ); - - self::assertEquals('[2023-01-01 10:00:00.123456,2023-01-01 18:00:00.654321)', (string) $tsRange); - }Also applies to: 253-262
241-251
: Consolidate redundant string formatting tests.The tests
can_format_timestamp_values_via_to_string()
andcan_parse_timestamp_strings_via_from_string()
have overlapping coverage with other tests and could be simplified or merged.Consider consolidating these tests or ensuring they test distinct aspects:
- The formatting test duplicates what's already covered in
handles_microseconds_correctly()
- The parsing test could be enhanced to verify round-trip consistency
#[Test] -public function can_format_timestamp_values_via_to_string(): void +public function can_roundtrip_timestamp_values(): void { $tsRange = new TsRange( new \DateTimeImmutable('2023-06-15 14:30:25.123456'), new \DateTimeImmutable('2023-06-15 18:45:30.654321') ); - $formatted = (string) $tsRange; - self::assertStringContainsString('2023-06-15 14:30:25.123456', $formatted); - self::assertStringContainsString('2023-06-15 18:45:30.654321', $formatted); + $formatted = (string) $tsRange; + $parsed = TsRange::fromString($formatted); + self::assertEquals($formatted, (string) $parsed); }Also applies to: 265-272
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
ci/phpstan/baselines/range-baseline.neon
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRangeTestCase.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8RangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php
(1 hunks)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- ci/phpstan/baselines/range-baseline.neon
🚧 Files skipped from review as they are similar to previous changes (5)
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int8RangeTest.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRangeTestCase.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/NumericRangeTest.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Int4RangeTest.php
- tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-26T02:46:12.804Z
Learning: The PR "preserve the type of floats and integers when transforming back and forth between PostgreSQL and PHP" improves type handling by ensuring that integers remain integers, floats remain floats, numeric strings stay as strings, and booleans are properly converted through the transformation process.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#352
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpInstrTest.php:1-67
Timestamp: 2025-04-20T11:24:18.300Z
Learning: This PostgreSQL-for-Doctrine project is a translation layer only, focusing on correctly converting Doctrine DQL to PostgreSQL SQL syntax. It ensures arguments are passed in the expected format but does not test or handle PostgreSQL's actual function behavior or data handling. Test cases should focus on DQL-to-SQL translation and argument validation, not on PostgreSQL-specific behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#350
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/BaseVariadicFunction.php:78-88
Timestamp: 2025-04-18T10:33:52.412Z
Learning: In SQL generation code for the postgresql-for-doctrine library, it's better to fail explicitly with clear errors than to use fallback behavior that makes assumptions about node types, as this could lead to functional bugs or security issues.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#0
File: :0-0
Timestamp: 2025-03-11T17:02:51.971Z
Learning: The PostgreSQL-for-doctrine library implements the JSON array element existence check using the `RIGHT_EXISTS_ON_LEFT` DQL function, which maps to PostgreSQL's `?` operator. This is used for checking if a specific value exists in a JSONB array column.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#277
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/JsonValueTest.php:19-35
Timestamp: 2025-03-13T15:00:16.619Z
Learning: The JsonValue implementation in postgres-for-doctrine has documented limitations: it does not support RETURNING type, DEFAULT clause, ON ERROR clause, ON EMPTY clause, and other advanced PostgreSQL JSON_VALUE features due to DQL limitations.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php (6)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#357
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RegexpMatchTest.php:28-62
Timestamp: 2025-04-22T00:03:37.733Z
Learning: This project focuses on providing Doctrine ORM interfaces to PostgreSQL functions. Tests should validate correct DQL-to-SQL translation rather than PostgreSQL functionality itself. Test cases should focus on parameter passing and SQL generation, not on testing specific PostgreSQL regex pattern behaviors.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php (5)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php (6)
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#263
File: src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php:19-21
Timestamp: 2025-03-11T12:32:10.726Z
Learning: In the postgresql-for-doctrine repository, PostgreSQL range functions have distinct implementations for different data types. The `Numrange` function works with numeric/decimal values and is tested using the `ContainsDecimals` fixture with properties typed as `float`. In contrast, the `Int4range` function works with 32-bit integers and is tested using the `ContainsIntegers` fixture with properties typed as `int`. While the PHP implementations share a similar structure (extending `BaseFunction`), they are semantically different as they handle different PostgreSQL data types.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#383
File: tests/Unit/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/RadiansTest.php:1-9
Timestamp: 2025-05-23T11:11:57.951Z
Learning: Tests in the `Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\Unit\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase directly, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), not PHPUnit's TestCase, and therefore don't need an explicit import statement.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#318
File: tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/XmlAggTest.php:1-9
Timestamp: 2025-03-29T03:31:17.114Z
Learning: Tests in the `Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions` namespace extend a custom `TestCase` class from the same namespace (`Tests\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\TestCase`), rather than PHPUnit's TestCase, and therefore don't need an explicit import.
Learnt from: martin-georgiev
PR: martin-georgiev/postgresql-for-doctrine#340
File: tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php:145-145
Timestamp: 2025-04-11T11:23:44.192Z
Learning: In the PostgreSQL for Doctrine test cases, methods that test database-to-PHP conversions should use `mixed` type for parameter and include non-string test cases in their data providers, following the pattern in classes like InetTest, CidrTest, and MacaddrTest.
Learnt from: karpilin
PR: martin-georgiev/postgresql-for-doctrine#386
File: tests/Integration/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ToTimestampTest.php:34-39
Timestamp: 2025-05-27T16:10:35.054Z
Learning: PostgreSQL's to_timestamp function returns a fallback result (like '2005-01-01 00:00:00+00') when given an invalid format string, rather than throwing an exception. This behavior is different from some other formatting functions and should be tested accordingly.
🧬 Code Graph Analysis (1)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php (4)
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php (6)
Range
(16-145)empty
(136-139)infinite
(141-144)fromString
(81-103)isEmpty
(56-72)contains
(107-134)src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRange.php (1)
TstzRange
(14-24)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/TstzRangeTest.php (1)
TstzRangeTest
(13-61)tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRangeTestCase.php (9)
BaseTimestampRangeTestCase
(18-178)getTestStartTime
(147-147)getTestEndTime
(152-152)createRangeWithTimes
(137-142)getTimeBeforeRange
(157-157)getTimeInMiddle
(162-162)createTimeWithMicroseconds
(167-167)getTestStartTimeString
(172-172)getTestEndTimeString
(177-177)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (17)
- GitHub Check: PostgreSQL 17 + PHP 8.4
- GitHub Check: PostgreSQL 16 + PHP 8.3
- GitHub Check: PostgreSQL 16 + PHP 8.4
- GitHub Check: PostgreSQL 17 + PHP 8.3
- GitHub Check: PostgreSQL 17 + PHP 8.2
- GitHub Check: PostgreSQL 16 + PHP 8.2
- GitHub Check: PostgreSQL 16 + PHP 8.1
- GitHub Check: PHP 8.1 + Doctrine ORM 2.14 + Doctrine Lexer 1.2
- GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer latest
- GitHub Check: PHP 8.4 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
- GitHub Check: PHP 8.3 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
- GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer 3.0
- GitHub Check: PHP 8.2 + Doctrine ORM 2.14 + Doctrine Lexer latest
- GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer latest
- GitHub Check: PHP 8.2 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
- GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer 3.0
- GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer 3.0
🔇 Additional comments (14)
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TstzRangeTest.php (7)
1-14
: LGTM! Well-structured test class declaration.The class properly extends
BaseTimestampRangeTestCase
with correct generic type annotation and imports all necessary dependencies.
16-106
: LGTM! Comprehensive implementation of abstract methods.All abstract methods from the base class are correctly implemented:
- Range creation methods return appropriate TstzRange instances
- Expected string formats match the
Y-m-d H:i:s.uP
format used by TstzRange- Test time providers use consistent timezone formatting
108-117
: LGTM! Good test for timezone-aware range creation.The test properly validates hour range creation with timezone preservation and uses
modify('+1 hour')
for clean time manipulation.
119-159
: LGTM! Comprehensive data providers for core functionality.Both data providers cover essential test scenarios:
provideContainsTestCases()
: boundary conditions, null handling, and containment logicprovideFromStringTestCases()
: various range formats and edge cases
161-179
: LGTM! Excellent timezone and microsecond precision testing.These tests validate critical TstzRange features:
- Timezone information preservation across different zones
- Exact microsecond precision handling
181-233
: LGTM! Thorough error handling and parsing validation.The tests properly validate:
- Type safety with appropriate exception expectations
- String formatting with timezone and microseconds
- Round-trip parsing functionality
- Invalid input handling with clear error messages
235-244
: LGTM! Good test for timezone preservation.The test validates that timezone information is maintained when creating ranges with infinite bounds.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/TsRangeTest.php (4)
16-22
: LGTM on range creation methods.The implementation correctly follows the abstract method contracts and uses appropriate timestamp objects and parameters.
Also applies to: 39-47, 59-62, 64-71
108-128
: Well-structured boundary and comparison test cases.The test data providers cover important edge cases including reverse ranges, equal bounds with different inclusivity, and boundary conditions.
Also applies to: 130-166
179-198
: Comprehensive data providers for core functionality.The data providers effectively test the
contains()
andfromString()
methods with good coverage of edge cases including null values and different range formats.Also applies to: 200-219
284-293
: TSRANGE timezone handling validatedThe
TsRange::formatValue()
method uses$value->format('Y-m-d H:i:s.u')
, which preserves the original wall-clock time and drops the timezone offset—exactly as the test expects. This aligns with PostgreSQL’stsrange
(timestamp without time zone) behavior and the project’s pattern of DQL-to-SQL translation. No changes required.tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php (3)
21-101
: Well-structured test methods with comprehensive coverage!The test methods provide excellent coverage of range functionality including creation, parsing, containment checks, boundary conditions, and comparisons. The use of PHP 8.0+ attributes and data providers follows modern PHPUnit best practices.
179-293
: Excellent helper assertion methods!The assertion helpers provide a comprehensive toolkit for range testing with clear error messages and consistent patterns. The
assertRangeEquals
method's approach of comparing both string representation and isEmpty state is particularly well-thought-out for value object comparison.
294-325
: Thorough edge case handling!The edge case testing methods demonstrate excellent attention to detail. Testing all four bracket combinations for equal bounds and validating reverse bounds behavior ensures robust range implementations. The callable factory approach provides good flexibility.
Summary by CodeRabbit
New Features
Tests
Documentation