-
Notifications
You must be signed in to change notification settings - Fork 530
Native type does not know anything about purity #3797
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
Merged
Merged
Changes from 7 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
3feb236
Remove purity check from native type
VincentLanglet d5c8413
Refacto
VincentLanglet 0ae5874
Refacto
VincentLanglet 1719af0
Add test about generic
VincentLanglet 2b8dae7
Fix test
VincentLanglet 58be765
Fix
VincentLanglet e80620c
Update test
VincentLanglet 210c0b3
Silent error
VincentLanglet File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<?php declare(strict_types = 1); | ||
|
||
namespace Bug12458; | ||
|
||
class HelloWorld | ||
{ | ||
/** | ||
* @param list<HelloWorld> $a | ||
*/ | ||
public function test(array $a): void | ||
{ | ||
/** @var \Closure(): list<HelloWorld> $c */ | ||
$c = function () use ($a): array { | ||
return $a; | ||
}; | ||
} | ||
|
||
/** | ||
* @template T of HelloWorld | ||
* @param list<T> $a | ||
*/ | ||
public function testGeneric(array $a): void | ||
{ | ||
/** @var \Closure(): list<T> $c */ | ||
$c = function () use ($a): array { | ||
return $a; | ||
}; | ||
} | ||
} |
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this mean it's going to be reported, or it's not going to be reported? I'd rather opt for failing silently (to not report an error).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't know exactly what this exception means.
Before my PR we were doing just
$type->isSuperTypeOf($varTagType)->no()
.Yes. But the error was also reported before this PR. This won't introduce new error.
That's why I didn't chose the failing silently solution.
Now, we doing
$type->isSuperTypeOf($varTagType)->no()
was OK before, early return$type->isSuperTypeOf($varTagType)->no()
was not ok).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you still prefer, I return
true
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. This would be an error the user cannot do with much. So I don't want to report it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done