rfc:instanceof_improvements
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
rfc:instanceof_improvements [2021/03/08 17:40] – maxsem | rfc:instanceof_improvements [2021/03/09 09:51] – maxsem | ||
---|---|---|---|
Line 7: | Line 7: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | As currently implemented, | + | As currently implemented, |
<code php> | <code php> | ||
var_dump(new MyClass instanceof MyClass); // true | var_dump(new MyClass instanceof MyClass); // true | ||
Line 36: | Line 36: | ||
==== Legacy type aliases ==== | ==== Legacy type aliases ==== | ||
+ | There are several legacy types, supported only for typecasts: '' | ||
==== Constant expressions on the left hand side ==== | ==== Constant expressions on the left hand side ==== | ||
Line 43: | Line 43: | ||
* In C#, constant expressions to the left of '' | * In C#, constant expressions to the left of '' | ||
* None of these support type names as strings, so the latter use case has no direct analogs. | * None of these support type names as strings, so the latter use case has no direct analogs. | ||
+ | |||
+ | I can see two possibilities why such constructs might appear in code: | ||
+ | * An clueless developer trying to achieve with '' | ||
+ | * A code generator went astray and generates something dubious. | ||
+ | Considering this, I don't think that adding support for constant expressions on LHS would do our end users any good. I propose to continue shortcutting such cases to false and additionally let the developers know they' | ||
===== Backward Incompatible Changes ===== | ===== Backward Incompatible Changes ===== |
rfc/instanceof_improvements.txt · Last modified: 2022/04/18 10:51 by ilutov