Skip to content
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

Merge release 2.10.1 into 2.11.x #654

Merged
merged 16 commits into from
Dec 30, 2020

Conversation

nicolas-grekas and others added 16 commits December 19, 2020 15:37
Reading a property from an interface proxy used to lead to a fatal error,
but should be a notice instead.
…r` when generating notice emulation code

Before this, the decision whether an interface was being proxied was delegated to the magic method generator,
which led to an explosion in conditionals in upstream code. Here we instead pass the whole `ReflectionClass`
for the parent symbol to the `PublicScopeSimulator`, therefore adding a single conditional to the source of
`PublicScopeSimulator`, leading to reduced complexity.
…rage, we raise the `minMsi` again

We now cover more edges in `PublicScopeSimulator`, and that should be reflected in our mutation score
requirements.
…n-accessing-dynamic-property-of-proxied-interface

#642 fix fatal error when accessing a dynamic property of a proxied interface (refactored)
…imulator` respects `:void` no-return-value semantics

Before this, generating `unset()` code while forgetting to pass all parameters to `PublicScopeSimulator` led to a
crash due to `__unset(): void { ... }` containing `return $value` statements (invalid starting from PHP 7.3.0)
…/PRoxyManagerTest/Functional` (and removed coverage)
…ameter` when not generating `__set` code

While changing this may seem like a BC Break, pre-existing usages of `PublicScopeSimulator` when combining
`$operationType = 'set'` and `$valueParameter !== null` was most likely a bug that did not surface in consumer
code yet.

This change highlights the bug, and leads to generating cleaner code for `__set`, as well as correcting
`public function __unset() : void` codegen, which previously generated invalid code that contained `return <expression>;`
statements (crashing since PHP 7.3.0).
…es-returned-by-ref-in-generated-code

#646 #632 #645 only variables should be returned by-ref in generated dynamic property access simulation code
@Ocramius Ocramius added this to the 2.11.0 milestone Dec 30, 2020
@Ocramius Ocramius self-assigned this Dec 30, 2020
@Ocramius Ocramius added the bug label Dec 30, 2020
@Ocramius Ocramius merged commit 15440d5 into 2.11.x Dec 30, 2020
@Ocramius Ocramius deleted the 2.10.x-merge-up-into-2.11.x_5fec8fce435468.86689243 branch December 30, 2020 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants