Skip to content

Commit 131caa6

Browse files
Trinary logic migration
1 parent 74df112 commit 131caa6

20 files changed

+128
-9
lines changed

src/Reflection/Annotations/AnnotationMethodReflection.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,4 +183,9 @@ public function getAttributes(): array
183183
return [];
184184
}
185185

186+
public function hasNoDiscardAttribute(): TrinaryLogic
187+
{
188+
return TrinaryLogic::createNo();
189+
}
190+
186191
}

src/Reflection/Dummy/ChangedTypeMethodReflection.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,4 +171,9 @@ public function getAttributes(): array
171171
return $this->reflection->getAttributes();
172172
}
173173

174+
public function hasNoDiscardAttribute(): TrinaryLogic
175+
{
176+
return $this->reflection->hasNoDiscardAttribute();
177+
}
178+
174179
}

src/Reflection/Dummy/DummyConstructorReflection.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,10 @@ public function getAttributes(): array
157157
return [];
158158
}
159159

160+
public function hasNoDiscardAttribute(): TrinaryLogic
161+
{
162+
// Align with the getAttributes() returning empty
163+
return TrinaryLogic::createNo();
164+
}
165+
160166
}

src/Reflection/Dummy/DummyMethodReflection.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,4 +149,10 @@ public function getAttributes(): array
149149
return [];
150150
}
151151

152+
public function hasNoDiscardAttribute(): TrinaryLogic
153+
{
154+
// Align with the getAttributes() returning empty
155+
return TrinaryLogic::createNo();
156+
}
157+
152158
}

src/Reflection/ExtendedMethodReflection.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,11 @@ public function isPure(): TrinaryLogic;
6565
*/
6666
public function getAttributes(): array;
6767

68+
/**
69+
* Has the #[\NoDiscard] attribute - on PHP 8.5+ if the function's return
70+
* value is unused at runtime a warning is emitted, phpstan will emit the
71+
* warning during analysis and on older PHP versions too
72+
*/
73+
public function hasNoDiscardAttribute(): TrinaryLogic;
74+
6875
}

src/Reflection/FunctionReflection.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,11 @@ public function isPure(): TrinaryLogic;
6262
*/
6363
public function getAttributes(): array;
6464

65+
/**
66+
* Has the #[\NoDiscard] attribute - on PHP 8.5+ if the function's return
67+
* value is unused at runtime a warning is emitted, phpstan will emit the
68+
* warning during analysis and on older PHP versions too
69+
*/
70+
public function hasNoDiscardAttribute(): TrinaryLogic;
71+
6572
}

src/Reflection/Native/NativeFunctionReflection.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,14 @@ public function getAttributes(): array
150150
return $this->attributes;
151151
}
152152

153+
public function hasNoDiscardAttribute(): TrinaryLogic
154+
{
155+
foreach ($this->attributes as $attrib) {
156+
if ($attrib->getName() === 'NoDiscard') {
157+
return TrinaryLogic::createYes();
158+
}
159+
}
160+
return TrinaryLogic::createNo();
161+
}
162+
153163
}

src/Reflection/Native/NativeMethodReflection.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,4 +227,14 @@ public function getAttributes(): array
227227
return $this->attributes;
228228
}
229229

230+
public function hasNoDiscardAttribute(): TrinaryLogic
231+
{
232+
foreach ($this->attributes as $attrib) {
233+
if ($attrib->getName() === 'NoDiscard') {
234+
return TrinaryLogic::createYes();
235+
}
236+
}
237+
return TrinaryLogic::createNo();
238+
}
239+
230240
}

src/Reflection/Php/ClosureCallMethodReflection.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,9 @@ public function getAttributes(): array
202202
return $this->nativeMethodReflection->getAttributes();
203203
}
204204

205+
public function hasNoDiscardAttribute(): TrinaryLogic
206+
{
207+
return $this->nativeMethodReflection->hasNoDiscardAttribute();
208+
}
209+
205210
}

src/Reflection/Php/EnumCasesMethodReflection.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,4 +161,9 @@ public function getAttributes(): array
161161
return [];
162162
}
163163

164+
public function hasNoDiscardAttribute(): TrinaryLogic
165+
{
166+
return TrinaryLogic::createYes();
167+
}
168+
164169
}

0 commit comments

Comments
 (0)