Repository navigation
Conversation
Contributor
|
Maybe the docs are wrong somewhere, please file a docs bug. But all PHP functions return null on wrong args, so should do DBA functions. |
|
Comment on behalf of stas at php.net: working as designed |
heyJordanParker
referenced
this pull request
in heyJordanParker/php-sharp
Oct 13, 2026
Problem: the generics slice branched from master c3a4a3c. Master since gained effects on function types (#126), private fields with no modifier (#128), union collections (#116), the sortedBy key rule (#125), macOS and Linux CI (#127), function uses (#122) and message fixes (#117). Ten files conflicted, and one master test named a syntax field the slice renamed. Solution: every conflict keeps both sides' behavior. - A refused expression has the error type in PHP# and `never` in PHP, as master types it, and `is_refused` keeps the slice's wider set of refused generic expressions. - An argument is a possible mismatch only when the parts it may share with the parameter, as `shareable_part` takes them, fit through master's `can_argument_be_identical`, and `verify_argument_type` returns whether the argument fits, as master's effect rules read it. - A method value's signature names the class it is read through, as master needs for `extern` lookups, while the slice still specializes it for its receiver and fixes its type arguments. - A PHP# literal's backed enum key and master's other new calls pass the dialect `get_backing_key_type` takes on the slice. - Comparisons master added use the slice's `ComparisonResult::for_dialect`. crates/ ├── analyzer/src/ │ ├── artifacts.rs tested_types beside function_values │ ├── expression/ │ │ ├── array.rs master's PHP# key branch, with the dialect │ │ ├── assignment/array_assignment.rs every declared element, for_dialect │ │ └── mod.rs slice's is_refused, master's error type │ ├── invocation/arguments.rs shareable_part over can_argument_be_identical │ ├── resolver/ │ │ ├── method.rs declared collections, paired with their written atomic │ │ └── property.rs method value source is the read-through class │ └── statement/ │ ├── class_like/property.rs for_dialect, records fitting function values │ └── function_like/mod.rs passes tested_types and function_values up ├── codex/src/scanner/ttype.rs function type keeps its effects and its type parameters └── syntax/tests/sharp.rs effects test reads type_arguments.arguments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.