|
1 | 1 | <?php
|
2 | 2 |
|
| 3 | +use Illuminate\Database\Eloquent\Relations\BelongsTo; |
| 4 | +use Illuminate\Database\Eloquent\Relations\HasMany; |
| 5 | +use Illuminate\Database\Eloquent\Relations\HasOne; |
| 6 | +use Illuminate\Database\Eloquent\Relations\MorphTo; |
| 7 | + |
3 | 8 | use function PHPStan\Testing\assertType;
|
4 | 9 |
|
5 | 10 | $collection = User::all();
|
|
11 | 16 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->load('string'));
|
12 | 17 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->load(['string']));
|
13 | 18 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->load(['string' => ['foo' => fn ($q) => $q]]));
|
14 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->load(['string' => function ($query) { |
15 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
| 19 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->load(['string' => function (BelongsTo $query) { |
| 20 | + assertType('Illuminate\Database\Eloquent\Relations\BelongsTo', $query); |
16 | 21 | }]));
|
17 | 22 |
|
18 | 23 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAggregate('string', 'string'));
|
19 | 24 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAggregate(['string'], 'string'));
|
20 | 25 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAggregate(['string' => ['foo' => fn ($q) => $q]], 'string'));
|
21 | 26 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAggregate(['string'], 'string', 'string'));
|
22 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAggregate(['string' => function ($query) { |
23 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
| 27 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAggregate(['string' => function (BelongsTo $query) { |
| 28 | + assertType('Illuminate\Database\Eloquent\Relations\BelongsTo', $query); |
24 | 29 | }], 'string', 'string'));
|
25 | 30 |
|
26 | 31 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadCount('string'));
|
27 | 32 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadCount(['string']));
|
28 | 33 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadCount(['string' => ['foo' => fn ($q) => $q]]));
|
29 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadCount(['string' => function ($query) { |
30 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
| 34 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadCount(['string' => function (HasOne $query) { |
| 35 | + assertType('Illuminate\Database\Eloquent\Relations\HasOne', $query); |
31 | 36 | }]));
|
32 | 37 |
|
33 | 38 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMax('string', 'string'));
|
34 | 39 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMax(['string'], 'string'));
|
35 | 40 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMax(['string' => ['foo' => fn ($q) => $q]], 'string'));
|
36 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMax(['string' => function ($query) { |
37 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
38 |
| -}], 'string')); |
| 41 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMax(['string' => function (HasMany $query) { |
| 42 | + assertType('Illuminate\Database\Eloquent\Relations\HasMany', $query); |
| 43 | +}])); |
39 | 44 |
|
40 | 45 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMin('string', 'string'));
|
41 | 46 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMin(['string'], 'string'));
|
42 | 47 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMin(['string' => ['foo' => fn ($q) => $q]], 'string'));
|
43 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMin(['string' => function ($query) { |
44 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
45 |
| -}], 'string')); |
| 48 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMin(['string' => function (HasOne $query) { |
| 49 | + assertType('Illuminate\Database\Eloquent\Relations\HasOne', $query); |
| 50 | +}])); |
46 | 51 |
|
47 | 52 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadSum('string', 'string'));
|
48 | 53 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadSum(['string'], 'string'));
|
49 | 54 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadSum(['string' => ['foo' => fn ($q) => $q]], 'string'));
|
50 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadSum(['string' => function ($query) { |
51 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
52 |
| -}], 'string')); |
| 55 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadSum(['string' => function (HasMany $query) { |
| 56 | + assertType('Illuminate\Database\Eloquent\Relations\HasMany', $query); |
| 57 | +}])); |
53 | 58 |
|
54 | 59 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAvg('string', 'string'));
|
55 | 60 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAvg(['string'], 'string'));
|
56 | 61 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAvg(['string' => ['foo' => fn ($q) => $q]], 'string'));
|
57 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAvg(['string' => function ($query) { |
58 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
59 |
| -}], 'string')); |
| 62 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadAvg(['string' => function (BelongsTo $query) { |
| 63 | + assertType('Illuminate\Database\Eloquent\Relations\BelongsTo', $query); |
| 64 | +}])); |
60 | 65 |
|
61 | 66 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadExists('string'));
|
62 | 67 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadExists(['string']));
|
63 | 68 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadExists(['string' => ['foo' => fn ($q) => $q]]));
|
64 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadExists(['string' => function ($query) { |
65 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
| 69 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadExists(['string' => function (MorphTo $query) { |
| 70 | + assertType('Illuminate\Database\Eloquent\Relations\MorphTo', $query); |
66 | 71 | }]));
|
67 | 72 |
|
68 | 73 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMissing('string'));
|
69 | 74 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMissing(['string']));
|
70 | 75 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMissing(['string' => ['foo' => fn ($q) => $q]]));
|
71 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMissing(['string' => function ($query) { |
72 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
| 76 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMissing(['string' => function (HasOne $query) { |
| 77 | + assertType('Illuminate\Database\Eloquent\Relations\HasOne', $query); |
73 | 78 | }]));
|
74 | 79 |
|
75 | 80 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMorph('string', ['string']));
|
76 | 81 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMorph('string', ['string' => ['foo' => fn ($q) => $q]]));
|
77 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMorph('string', ['string' => function ($query) { |
78 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
| 82 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMorph('string', ['string' => function (HasMany $query) { |
| 83 | + assertType('Illuminate\Database\Eloquent\Relations\HasMany', $query); |
79 | 84 | }]));
|
80 | 85 |
|
81 | 86 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMorphCount('string', ['string']));
|
82 | 87 | assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMorphCount('string', ['string' => ['foo' => fn ($q) => $q]]));
|
83 |
| -assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMorphCount('string', ['string' => function ($query) { |
84 |
| - // assertType('Illuminate\Database\Eloquent\Relations\Relation<*,*,*>', $query); |
| 88 | +assertType('Illuminate\Database\Eloquent\Collection<int, User>', $collection->loadMorphCount('string', ['string' => function (HasOne $query) { |
| 89 | + assertType('Illuminate\Database\Eloquent\Relations\HasOne', $query); |
85 | 90 | }]));
|
86 | 91 |
|
87 | 92 | assertType('bool', $collection->contains(function ($user) {
|
|
0 commit comments