brick / math

Arbitrary-precision arithmetic library for PHP
MIT License
1.83k stars 78 forks source link

Psalm related refactoring #36

Closed alexeyshockov closed 4 years ago

alexeyshockov commented 4 years ago

Fixes #35

@BenMorel, you are correct, Psalm 3.8.4 introduces more strictness checks, so after this version we have these errors.

I added one suppression for the singleton, and also refactored out params... I mean, Psalm is correct raising these error, out params are not pure. And really, I don't see any benefits of using them. So I did the refactoring, please take a look.

BenMorel commented 4 years ago

Thank you. I guess it makes sense to remove the references. I did this originally with performance in mind, but looking back today, it doesn't look like this matters much. A quick benchmark shows a 1~2% decrease in speed, but it's probably not big enough to justify the ugliness of the references.

Can you please re-introduce the Travis job removed in cf06d5aaee3e0d67a9491230298ede6dacca5ad5?

alexeyshockov commented 4 years ago

...but it's probably not big enough to justify the ugliness of the references.

Agree.

Enabled Psalm in Travis.

BenMorel commented 4 years ago

All good, thank you!