Remove Incorrect @mixin Annotation in BuildsQueries Trait #54596
+0
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Incorrect
@mixin
Annotation in BuildsQueries TraitDescription
The
BuildsQueries
trait contains a PHPDoc annotation that incorrectly mixes in both Eloquent Builder and Query Builder methods. This causes IDEs like PHPStorm to suggest Eloquent-specific methods in contexts where only Query Builder methods are available, leading to potential runtime errors.Current Behavior
The trait currently has this annotation:
This causes PHPStorm to suggest Eloquent-specific methods (like
whereBelongsTo
) even when working with a pure Query Builder instance, such as in validation rules:Expected Behavior
The trait should only mix in Query Builder methods since it's used in contexts where Eloquent Builder methods are not available. The annotation should be:
Steps to Reproduce
Rule::unique()
\Illuminate\Database\Query\Builder
whereBelongsTo
ERROR: column "belongs_to" does not exist
Impact
This incorrect type annotation can lead developers to use Eloquent methods in Query Builder contexts, resulting in runtime errors that aren't caught during development.
Additional Context
The issue affects static analysis and IDE support, potentially causing developers to write code that will fail at runtime despite appearing valid to their IDE.