Skip to content

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

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
Open

feat: add support for range types #396

wants to merge 17 commits into from

Conversation

martin-georgiev
Copy link
Owner

@martin-georgiev martin-georgiev commented Jul 4, 2025

Summary by CodeRabbit

  • New Features

    • Added comprehensive support for PostgreSQL range types (daterange, int4range, int8range, numrange, tsrange, tstzrange) in Doctrine DBAL, including dedicated value objects for each type.
    • Enabled robust conversion between PHP value objects and PostgreSQL range string representations, fully handling empty, infinite, inclusive, and exclusive bounds.
    • Introduced custom exception handling for invalid range values and formats to improve error clarity.
  • Tests

    • Added extensive unit and integration tests for all supported range types, verifying conversions, boundary conditions, containment logic, and error handling.
  • Documentation

    • Updated integration and available types documentation to include new PostgreSQL range types and their PHP implementations.
    • Added detailed documentation on usage, registration, and operations with PostgreSQL range types.
    • Included practical use cases and examples demonstrating range type usage in ORM entities and queries.

Copy link

coderabbitai bot commented Jul 4, 2025

Walkthrough

This 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

File(s) Change Summary
src/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeType.php
.../DateRange.php
.../Int4Range.php
.../Int8Range.php
.../NumRange.php
.../TsRange.php
.../TstzRange.php
Added abstract and concrete Doctrine DBAL type classes for PostgreSQL range types with conversion logic.
src/MartinGeorgiev/Doctrine/DBAL/Types/Exceptions/InvalidRangeForDatabaseException.php
.../InvalidRangeForPHPException.php
Added custom exception classes for invalid range values during database conversion and PHP value handling.
src/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/Range.php
.../BaseIntegerRange.php
.../BaseTimestampRange.php
.../DateRange.php
.../Int4Range.php
.../Int8Range.php
.../NumericRange.php
.../TsRange.php
.../TstzRange.php
Added abstract and concrete value object classes for PostgreSQL range types, with parsing, formatting, and validation logic.
tests/Integration/MartinGeorgiev/Doctrine/DBAL/Types/DBALTypesTest.php
.../TestCase.php
Extended integration tests to cover all new range types and registered them for test database setup.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/DateRangeTest.php
.../Int4RangeTest.php
.../Int8RangeTest.php
.../NumRangeTest.php
.../TsRangeTest.php
.../TstzRangeTest.php
Added unit tests for each new Doctrine DBAL range type, testing conversion and edge cases.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/DateRangeTest.php
.../Int4RangeTest.php
.../Int8RangeTest.php
.../NumericRangeTest.php
.../TsRangeTest.php
.../TstzRangeTest.php
Added unit tests for each new range value object, covering construction, parsing, contains logic, and edge cases.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/BaseRangeTestCase.php Added abstract base PHPUnit test case for testing Doctrine DBAL range types with generic conversion tests.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseRangeTestCase.php Added abstract base PHPUnit test case for testing Range value objects with extensive range behavior tests.
tests/Unit/MartinGeorgiev/Doctrine/DBAL/Types/ValueObject/BaseTimestampRangeTestCase.php Added abstract base PHPUnit test case for testing timestamp range value objects with specialized timestamp tests.
ci/phpstan/baselines/range-baseline.neon
ci/phpstan/config.neon
Added PHPStan baseline for suppressing known static analysis issues related to generic return types and static instantiation.
docs/AVAILABLE-TYPES.md Documented new PostgreSQL range types and their PHP implementations.
docs/INTEGRATING-WITH-DOCTRINE.md Updated integration instructions to register new PostgreSQL range types with Doctrine DBAL.
docs/RANGE-TYPES.md Added comprehensive documentation describing PostgreSQL range types support, usage, and examples.
docs/USE-CASES-AND-EXAMPLES.md Added examples demonstrating usage of range types in entities and queries with PostgreSQL operators.
README.md Updated README to include numeric range type support and extended feature list and operator documentation.

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
Loading

Possibly related PRs

Poem

🐇
A hop and a leap, new ranges appear,
Dates, ints, and times, all PostgreSQL cheer!
From brackets and bounds to infinite skies,
Now Doctrine can store what the database implies.
With tests all around, the code’s feeling bright—
Range support is here, and it works just right!

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch range-types

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need 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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a 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 where BaseRangeType doesn't implement the abstract getName() method from Doctrine\DBAL\Types\Type.

src/MartinGeorgiev/Doctrine/DBAL/Types/DateRange.php (1)

19-27: Same getName() omission as noted for Int8Range.

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: Same getName() omission as noted for Int8Range.

Fix centrally or locally to satisfy Doctrine’s contract.

src/MartinGeorgiev/Doctrine/DBAL/Types/Int4Range.php (1)

19-27: Same getName() omission as noted for Int8Range.

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 ambiguous tsrange output.

tsrange is “timestamp without time zone”, yet DateTimeInterface instances may carry one.
Today you silently format using the object’s current zone, which can lead to inconsistent persistence when callers pass mixed-zone DateTimeImmutables.

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 use mixed 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): void

Consider 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): void
tests/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): void
tests/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 while providesValidPHPValues 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

📥 Commits

Reviewing files that changed from the base of the PR and between e054832 and 22da0b0.

📒 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. The final 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() and singleDay() 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 and PHP_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 setup

The 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 test

The 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 testing

The test correctly validates the empty range factory method and its expected behavior.


34-41: Infinite range test validates PostgreSQL format

The 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 correct

The 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 correctly

The test validates that a year range correctly spans from January 1st to January 1st of the next year (exclusive).


62-69: Month range spans correctly

The 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 patterns

The 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 state

The 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 handling

The exception tests correctly validate that invalid constructor arguments throw appropriate InvalidArgumentException with descriptive messages.


106-122: Comprehensive contains test coverage

The 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 cases

The 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.

Copy link

@coderabbitai coderabbitai bot left a 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

📥 Commits

Reviewing files that changed from the base of the PR and between d937631 and 6a4ab35.

📒 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.

coderabbitai[bot]
coderabbitai bot previously approved these changes Jul 5, 2025
@coveralls
Copy link

coveralls commented Jul 5, 2025

Coverage Status

coverage: 91.853% (-2.5%) from 94.37%
when pulling b70f8c3 on range-types
into e054832 on main.

coderabbitai[bot]
coderabbitai bot previously approved these changes Jul 5, 2025
coderabbitai[bot]
coderabbitai bot previously approved these changes Jul 6, 2025
Copy link

@coderabbitai coderabbitai bot left a 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 strings

While 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 precision

The 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 test handles_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

📥 Commits

Reviewing files that changed from the base of the PR and between b70f8c3 and bf9b2c7.

📒 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 generic

The use MartinGeorgiev\Doctrine\DBAL\Types\ValueObject\Range; statement is correct, and the Range class is annotated with @template R of int|float|\DateTimeInterface. The static-analysis warnings you’re seeing stem from using Range 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 class

Excellent design extending BaseRangeTestCase with timestamp-specific test patterns. The abstract methods provide clear extension points for concrete implementations.

@seb-jean
Copy link
Contributor

seb-jean commented Jul 8, 2025

Is it possible to use for example the Martin Georgiev\Doctrine\ORM\Query\AST\Functions\Contains operator for these types? Because it's more for arrays.

Copy link

@coderabbitai coderabbitai bot left a 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

📥 Commits

Reviewing files that changed from the base of the PR and between bf9b2c7 and 7e62726.

📒 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 handling
  • provideFromStringTestCases: Covers various range formats including infinite and empty ranges

The 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.

coderabbitai[bot]
coderabbitai bot previously approved these changes Jul 13, 2025
- 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.
Copy link

@coderabbitai coderabbitai bot left a 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 both DateTime and DateTimeImmutable to truly test different DateTimeInterface 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() and can_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() and can_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

📥 Commits

Reviewing files that changed from the base of the PR and between 7e62726 and 3a48123.

📒 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 logic
  • provideFromStringTestCases(): 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() and fromString() methods with good coverage of edge cases including null values and different range formats.

Also applies to: 200-219


284-293: TSRANGE timezone handling validated

The 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’s tsrange (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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants