Skip to content

Commit 7534ee1

Browse files
committed
These DateTimeInterface methods are pure
1 parent 0ce2ee3 commit 7534ee1

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

bin/functionMetadata_original.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@
130130
'random_int' => ['hasSideEffects' => true],
131131

132132
// methods
133+
'DateTimeInterface::diff' => ['hasSideEffects' => false],
134+
'DateTimeInterface::format' => ['hasSideEffects' => false],
135+
'DateTimeInterface::getOffset' => ['hasSideEffects' => false],
136+
'DateTimeInterface::getTimestamp' => ['hasSideEffects' => false],
137+
'DateTimeInterface::getTimezone' => ['hasSideEffects' => false],
138+
133139
'DateTime::createFromFormat' => ['hasSideEffects' => false],
134140
'DateTime::createFromImmutable' => ['hasSideEffects' => false],
135141
'DateTime::getLastErrors' => ['hasSideEffects' => false],

resources/functionMetadata.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@
8686
'DateTimeImmutable::setTimestamp' => ['hasSideEffects' => false],
8787
'DateTimeImmutable::setTimezone' => ['hasSideEffects' => false],
8888
'DateTimeImmutable::sub' => ['hasSideEffects' => false],
89+
'DateTimeInterface::diff' => ['hasSideEffects' => false],
90+
'DateTimeInterface::format' => ['hasSideEffects' => false],
91+
'DateTimeInterface::getOffset' => ['hasSideEffects' => false],
92+
'DateTimeInterface::getTimestamp' => ['hasSideEffects' => false],
93+
'DateTimeInterface::getTimezone' => ['hasSideEffects' => false],
8994
'Error::__construct' => ['hasSideEffects' => false],
9095
'ErrorException::__construct' => ['hasSideEffects' => false],
9196
'Event::__construct' => ['hasSideEffects' => false],

tests/PHPStan/Rules/Pure/data/pure-method.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,3 +421,32 @@ public static function getB(): int
421421
return 1;
422422
}
423423
}
424+
425+
class CallDateTime
426+
{
427+
428+
/**
429+
* @phpstan-pure
430+
*/
431+
public function doFoo(\DateTimeInterface $date): string
432+
{
433+
return $date->format('j. n. Y');
434+
}
435+
436+
/**
437+
* @phpstan-pure
438+
*/
439+
public function doFoo2(\DateTime $date): string
440+
{
441+
return $date->format('j. n. Y');
442+
}
443+
444+
/**
445+
* @phpstan-pure
446+
*/
447+
public function doFoo3(\DateTimeImmutable $date): string
448+
{
449+
return $date->format('j. n. Y');
450+
}
451+
452+
}

0 commit comments

Comments
 (0)