New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Union assertions not detecting paradoxes #8322
Comments
I found these snippets: https://psalm.dev/r/49f98e503d<?php
namespace Bar;
/**
* Asserts that two variables are not the same.
*
* @template T
* @param T $expected
* @param mixed $actual
* @psalm-assert T $actual
*/
function assertNotSame($expected, $actual) : void {}
$expected = rand(0, 1) ? 4 : 5;
$actual = 6;
assertNotSame($expected, $actual);
/** @psalm-trace $actual */;
|
Shouldn't it assert Actually, I'm not sure what it should assert... Is this even possible to do correctly? If you have both |
I actually want to assertEqual: https://psalm.dev/r/2438f000d1 |
I found these snippets: https://psalm.dev/r/2438f000d1<?php
namespace Bar;
/**
* Asserts that two variables are not the same.
*
* @template T
* @param T $expected
* @param mixed $actual
* @psalm-assert T $actual
*/
function assertSame($expected, $actual) : void {}
$expected = rand(0, 1) ? 4 : 5;
$actual = 6;
assertSame($expected, $actual);
/** @psalm-trace $actual */;
|
|
I found these snippets: https://psalm.dev/r/a6dc1e3b9a<?php
$expected = rand(0, 1) ? 4 : 5;
$actual = 6;
assert($expected === $actual);
/** @psalm-trace $actual */;
https://psalm.dev/r/97bbacb893<?php
namespace Bar;
/**
* Asserts that two variables are not the same.
*
* @template T
* @param T $expected
* @param mixed $actual
* @psalm-assert T $actual
*/
function assertSame($expected, $actual) : void {}
$expected = 5;
$actual = 6;
assertSame($expected, $actual);
/** @psalm-trace $actual */;
|
fixed in master :) |
Possibly introduced by #8077: https://psalm.dev/r/49f98e503d
The text was updated successfully, but these errors were encountered: