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

gen_stub: various simplifications and clean up (3) #17886

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

DanielEScherzer
Copy link
Contributor

Each commit can be reviewed independently, and should have no functional changes

The following properties are made private:
* `ArrayType::$keyType`, `::$valueType`
* `ArginfoType::$builtinTypes`
* `ConstName::$const`
* `ClassConstName::$const`
* `PropertyName::$property`
* `FuncInfo::$classFlags`, `::$isDeprecated`, `::$supportsCompileTimeEval`,
`::$minimumPhpVersionIdCompatibility`, `::$framelessFunctionInfos`,
`::$exposedDocComment`
* `VariableLike::$link`
* `ConstInfo::$isDeprecated`, `::$valueString`, `::$isFileCacheAllowed`
* `PropertyInfo::$classFlags`, `::$defaultValue`,
`::$defaultValueString`, `::$isDocReadonly`, `::$isVirtual`
* `EnumCaseInfo::$name`, `::$value`
* `AttributeInfo::$args`
* `ClassInfo::$enumBackingType`, `::$isDeprecated`, `::$exposedDocComment`,
`::$isStrictProperties`, `::$isNotSerializable`, `::$propertyInfos`,
`::$enumCaseInfos`

The following are made protected:
* `VariableLike::$exposedDocComment`, `::$phpVersionIdMinimumCompatibility`
Move the logic from `parseStubFile()` to `FileInfo::__construct()`, and in the
process inline and remove `FileInfo::setMinimumPhpVersionIdCompatibility()`.
Unused, only caller passes in the same FuncInfo object that the method is
called on.
Deduplicate reporting out each time a file is saved
Reduce the number of global functions by moving it to
`ExposedDocComment::extractExposedComment()`
Reduce the number of global functions merging `parseDocComment()` into its only
caller
Reduce the number of global functions by moving it to
`AttributeInfo::createFromGroups()`. In the process, fix the documentation for
the return type, the result is an array of `AttributeInfo` objects, not
`Attribute` objects.
Reduce the number of global functions by moving it to instance method
`FuncInfo::findEquivalent()`.
return $result;
return array_filter(
$stmts[0]->getComments(),
static fn ( $comment ) => $comment instanceof DocComment
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

        static fn ($comment): bool => $comment instanceof DocComment

@@ -36,6 +36,13 @@
PHP_85_VERSION_ID,
];

// file_put_contents() but with a success message printed after saving
function report_file_put_contents(string $filename, string $content) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

function reportFilePutContents(string $filename, string $content): void {

or something similar

@@ -4050,6 +4050,35 @@ class FileInfo {
public bool $legacyArginfoGeneration = false;
private ?int $minimumPhpVersionIdCompatibility = null;

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

    /* @param array<int, DocCommentTag> $fileTags */

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants