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

Fix some straightforward PhanUndeclared issues #37201

Merged
merged 3 commits into from
May 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: changed
Comment: Reference https://github.com/phan/phan/issues/1204 when that's the reason for Phan suppression. No change to functionality.


2 changes: 1 addition & 1 deletion projects/packages/changelogger/src/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public function __construct() {
*/
public function doRun( InputInterface $input, OutputInterface $output ): int {
$output->getFormatter()->setStyle( 'warning', new OutputFormatterStyle( 'black', 'yellow' ) );
// @phan-suppress-next-line PhanUndeclaredMethodInCallable,PhanUndeclaredMethod -- Being checked before being called.
// @phan-suppress-next-line PhanUndeclaredMethodInCallable,PhanUndeclaredMethod -- Being checked before being called. See also https://github.com/phan/phan/issues/1204.
$errout = is_callable( array( $output, 'getErrorOutput' ) ) ? $output->getErrorOutput() : $output;

// Try to find a composer.json, if COMPOSER isn't set.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,8 @@ public function nextVersion( $version, array $changes, array $extra = array() )
if ( isset( $significances['major'] ) ) {
$info['patch'] = 0;
if ( 0 === (int) $info['major'] ) {
if ( is_callable( array( $this->output, 'getErrorOutput' ) ) ) { // @phan-suppress-current-line PhanUndeclaredMethodInCallable -- This is checking.
$out = $this->output->getErrorOutput(); // @phan-suppress-current-line PhanUndeclaredMethod -- Checked just above.
if ( is_callable( array( $this->output, 'getErrorOutput' ) ) ) { // @phan-suppress-current-line PhanUndeclaredMethodInCallable -- See https://github.com/phan/phan/issues/1204.
$out = $this->output->getErrorOutput(); // @phan-suppress-current-line PhanUndeclaredMethod -- See https://github.com/phan/phan/issues/1204.
$out->writeln( '<warning>Semver does not automatically move version 0.y.z to 1.0.0.</>' );
$out->writeln( '<warning>You will have to do that manually when you\'re ready for the first release.</>' );
}
Expand Down
5 changes: 1 addition & 4 deletions projects/packages/config/.phan/baseline.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,9 @@
* (can be combined with --load-baseline)
*/
return [
// # Issue statistics:
// PhanUndeclaredClassMethod : 1 occurrence

// This baseline has no suppressions
Copy link
Contributor

Choose a reason for hiding this comment

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

🥳

// Currently, file_suppressions and directory_suppressions are the only supported suppressions
'file_suppressions' => [
'src/class-config.php' => ['PhanUndeclaredClassMethod'],
],
// 'directory_suppressions' => ['src/directory_name' => ['PhanIssueName1', 'PhanIssueName2']] can be manually added if needed.
// (directory_suppressions will currently be ignored by subsequent calls to --save-baseline, but may be preserved in future Phan releases)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: added
Comment: Suppress PhanUndeclaredClassMethod regarding a class only referenced for compat with jetpack-jitm <1.6. No change to functionality.


1 change: 1 addition & 0 deletions projects/packages/config/src/class-config.php
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ protected function enable_jitm() {
JITMS_JITM::configure();
} else {
// Provides compatibility with jetpack-jitm <v1.6.
// @phan-suppress-next-line PhanUndeclaredClassMethod
JITM::configure();
}

Expand Down
5 changes: 2 additions & 3 deletions projects/packages/connection/.phan/baseline.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
// PhanTypeMismatchPropertyDefault : 2 occurrences
// PhanTypeMismatchReturnNullable : 2 occurrences
// PhanTypePossiblyInvalidDimOffset : 2 occurrences
// PhanUndeclaredMethodInCallable : 2 occurrences
// PhanAccessMethodInternal : 1 occurrence
// PhanImpossibleCondition : 1 occurrence
// PhanImpossibleTypeComparison : 1 occurrence
Expand Down Expand Up @@ -67,7 +66,7 @@
'tests/php/test-class-nonce-handler.php' => ['PhanPluginDuplicateAdjacentStatement', 'PhanTypeMismatchArgument'],
'tests/php/test-class-webhooks.php' => ['PhanDeprecatedFunction'],
'tests/php/test-partner-coupon.php' => ['PhanDeprecatedFunction'],
'tests/php/test-rest-endpoints.php' => ['PhanNoopNew', 'PhanTypeMismatchArgumentProbablyReal', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal', 'PhanUndeclaredMethodInCallable'],
'tests/php/test-rest-endpoints.php' => ['PhanNoopNew', 'PhanTypeMismatchArgumentProbablyReal', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal'],
'tests/php/test-tracking.php' => ['PhanDeprecatedFunction'],
'tests/php/test_Error_Handler.php' => ['PhanParamTooMany', 'PhanTypeMismatchArgument'],
'tests/php/test_Manager_integration.php' => ['PhanParamTooMany'],
Expand All @@ -76,7 +75,7 @@
'tests/php/test_Server_Sandbox.php' => ['PhanTypeArraySuspiciousNullable'],
'tests/php/test_Signature.php' => ['PhanTypeMismatchArgumentProbablyReal'],
'tests/php/test_Tokens.php' => ['PhanDeprecatedFunction', 'PhanTypeObjectUnsetDeclaredProperty'],
'tests/php/test_jetpack_xmlrpc_server.php' => ['PhanDeprecatedFunction', 'PhanPluginSimplifyExpressionBool', 'PhanTypeMismatchArgument', 'PhanUndeclaredMethodInCallable'],
'tests/php/test_jetpack_xmlrpc_server.php' => ['PhanDeprecatedFunction', 'PhanPluginSimplifyExpressionBool', 'PhanTypeMismatchArgument'],
'tests/php/test_package_version_tracker.php' => ['PhanDeprecatedFunction'],
],
// 'directory_suppressions' => ['src/directory_name' => ['PhanIssueName1', 'PhanIssueName2']] can be manually added if needed.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: removed
Comment: Remove references to nonexistent methods in tests. No change to functionality.


Original file line number Diff line number Diff line change
Expand Up @@ -1816,6 +1816,5 @@ private function shutdown_reconnect_test( $invalid_token ) {
}

remove_filter( 'jetpack_options', array( $this, 'mock_jetpack_options' ), 10 );
remove_filter( 'pre_http_request', array( $this, 'intercept_validate_tokens_request' ), 10 );
tbradsha marked this conversation as resolved.
Show resolved Hide resolved
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,6 @@ public function test_remote_connect_fails_no_blog_token() {

$server = new Jetpack_XMLRPC_Server();

add_filter( 'pre_http_request', array( $this, '__return_token' ) );
tbradsha marked this conversation as resolved.
Show resolved Hide resolved
$response = $server->remote_connect(
array(
'nonce' => '1234',
Expand Down
7 changes: 3 additions & 4 deletions projects/packages/forms/.phan/baseline.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@
// # Issue statistics:
// PhanTypeMismatchArgument : 20+ occurrences
// PhanPluginDuplicateConditionalNullCoalescing : 10+ occurrences
// PhanUndeclaredMethod : 10+ occurrences
// PhanTypeMismatchReturnProbablyReal : 9 occurrences
// PhanTypeMismatchArgumentInternal : 7 occurrences
// PhanTypeMismatchArgumentProbablyReal : 6 occurrences
// PhanDeprecatedFunction : 5 occurrences
// PhanRedundantCondition : 4 occurrences
// PhanUndeclaredClassMethod : 4 occurrences
// PhanTypeMismatchReturn : 3 occurrences
// PhanTypePossiblyInvalidDimOffset : 3 occurrences
// PhanUndeclaredClassMethod : 3 occurrences
// PhanPluginRedundantAssignment : 2 occurrences
// PhanTypeConversionFromArray : 2 occurrences
// PhanTypeMismatchArgumentNullableInternal : 2 occurrences
Expand All @@ -41,14 +40,14 @@
'src/class-wpcom-rest-api-v2-endpoint-forms.php' => ['PhanTypePossiblyInvalidDimOffset', 'PhanUndeclaredFunction'],
'src/contact-form/class-admin.php' => ['PhanPluginDuplicateConditionalNullCoalescing', 'PhanPossiblyUndeclaredVariable', 'PhanRedundantCondition', 'PhanTypeArraySuspiciousNullable', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentInternal', 'PhanTypeMismatchArgumentProbablyReal', 'PhanTypeMismatchReturn'],
'src/contact-form/class-contact-form-field.php' => ['PhanParamTooMany', 'PhanPluginDuplicateConditionalNullCoalescing', 'PhanPossiblyNullTypeMismatchProperty', 'PhanTypeConversionFromArray', 'PhanTypeMismatchArgument', 'PhanTypeMismatchReturnProbablyReal', 'PhanUndeclaredClassMethod', 'PhanUndeclaredProperty'],
'src/contact-form/class-contact-form-plugin.php' => ['PhanPluginDuplicateAdjacentStatement', 'PhanPluginDuplicateConditionalNullCoalescing', 'PhanPluginRedundantAssignment', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentInternal', 'PhanTypeMismatchArgumentProbablyReal', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal', 'PhanUndeclaredClassMethod'],
'src/contact-form/class-contact-form-plugin.php' => ['PhanPluginDuplicateAdjacentStatement', 'PhanPluginDuplicateConditionalNullCoalescing', 'PhanPluginRedundantAssignment', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentInternal', 'PhanTypeMismatchArgumentProbablyReal', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal'],
'src/contact-form/class-contact-form-shortcode.php' => ['PhanPluginDuplicateConditionalNullCoalescing', 'PhanTypeMismatchReturnProbablyReal'],
'src/contact-form/class-contact-form.php' => ['PhanPluginDuplicateConditionalNullCoalescing', 'PhanPluginRedundantAssignment', 'PhanRedundantCondition', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullableInternal', 'PhanTypeMismatchReturnNullable', 'PhanTypeMismatchReturnProbablyReal'],
'src/dashboard/class-dashboard-view-switch.php' => ['PhanUnreferencedUseNormal'],
'src/dashboard/class-dashboard.php' => ['PhanUndeclaredClassMethod', 'PhanUndeclaredConstant'],
'src/service/class-google-drive.php' => ['PhanTypeMismatchReturnProbablyReal'],
'tests/php/contact-form/test-class.contact-form-plugin.php' => ['PhanPluginMixedKeyNoKey'],
'tests/php/contact-form/test-class.contact-form.php' => ['PhanDeprecatedFunction', 'PhanUndeclaredMethod'],
'tests/php/contact-form/test-class.contact-form.php' => ['PhanDeprecatedFunction'],
],
// 'directory_suppressions' => ['src/directory_name' => ['PhanIssueName1', 'PhanIssueName2']] can be manually added if needed.
// (directory_suppressions will currently be ignored by subsequent calls to --save-baseline, but may be preserved in future Phan releases)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fixed

Fix reference to `Jetpack_Options` class in `Contact_Form_Plugin::record_tracks_event()`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: fixed
Comment: Fix Phan complaints about DOMElement methods called on DOMNode in tests, mostly by adding `assertInstanceOf` so it can infer DOMElement as the type.


Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use Automattic\Jetpack\Extensions\Contact_Form\Contact_Form_Block;
use Automattic\Jetpack\Forms\Jetpack_Forms;
use Automattic\Jetpack\Forms\Service\Post_To_Url;
use Jetpack_Options;
use WP_Error;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1066,6 +1066,9 @@ public function assertValidCheckboxField( $html, $attributes ) {
$label = $wrapper_div->getElementsByTagName( 'label' )->item( 0 );
$input = $wrapper_div->getElementsByTagName( 'input' )->item( 0 );

$this->assertInstanceOf( DOMElement::class, $label );
$this->assertInstanceOf( DOMElement::class, $input );

$this->assertEquals( $label->getAttribute( 'class' ), 'grunion-field-label ' . $attributes['type'], 'label class doesn\'t match' );

$this->assertEquals( $input->getAttribute( 'name' ), $attributes['id'], 'Input name doesn\'t match' );
Expand Down Expand Up @@ -1118,6 +1121,7 @@ public function assertValidFieldMultiField( $html, $attributes ) {
$this->assertCount( $n, $attributes['values'], 'Number of inputs doesn\'t match number of values' );
for ( $i = 0; $i < $n; $i++ ) {
$option = $options->item( $i );
$this->assertInstanceOf( DOMElement::class, $option );
$this->assertEquals( $option->getAttribute( 'value' ), $attributes['values'][ $i ], 'Input value doesn\'t match' );
if ( 0 === $i ) {
$this->assertEquals( 'selected', $option->getAttribute( 'selected' ), 'Input is not selected' );
Expand All @@ -1142,8 +1146,8 @@ public function assertValidFieldMultiField( $html, $attributes ) {
//phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$this->assertEquals( $item_label->nodeValue, $attributes['options'][ $i ] );

//phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$input = $item_label->parentNode->getElementsByTagName( 'input' )->item( 0 );
// @phan-suppress-next-line PhanUndeclaredMethod -- parentElement was only added in PHP 8.3, and Phan can't know that parentNode will be an element.
$input = $item_label->parentNode->getElementsByTagName( 'input' )->item( 0 ); //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
$this->assertEquals( $input->getAttribute( 'type' ), $attributes['input_type'], 'Type doesn\'t match' );
if ( 'radio' === $attributes['input_type'] ) {
$this->assertEquals( $input->getAttribute( 'name' ), $attributes['id'], 'Input name doesn\'t match' );
Expand Down
3 changes: 1 addition & 2 deletions projects/packages/identity-crisis/.phan/baseline.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
// # Issue statistics:
// PhanDeprecatedFunction : 20+ occurrences
// PhanTypeMismatchArgument : 5 occurrences
// PhanUndeclaredClassMethod : 3 occurrences
// PhanNoopNew : 1 occurrence
// PhanParamTooMany : 1 occurrence
// PhanPluginRedundantAssignment : 1 occurrence
Expand All @@ -25,7 +24,7 @@
'file_suppressions' => [
'src/class-identity-crisis.php' => ['PhanDeprecatedFunction', 'PhanPluginRedundantAssignment', 'PhanRedundantCondition'],
'src/class-rest-endpoints.php' => ['PhanTypeMismatchArgumentProbablyReal'],
'src/class-url-secret.php' => ['PhanTypeMismatchProperty', 'PhanTypeMismatchReturnNullable', 'PhanUndeclaredClassMethod'],
'src/class-url-secret.php' => ['PhanTypeMismatchProperty', 'PhanTypeMismatchReturnNullable'],
'tests/php/test-identity-crisis.php' => ['PhanParamTooMany', 'PhanTypeMismatchArgument'],
'tests/php/test-rest-endpoints.php' => ['PhanNoopNew'],
'tests/php/test-url-secret.php' => ['PhanTypeMismatchArgumentInternal'],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fixed

Fix class references in `URL_Secret::create_secret()` exception handler.
2 changes: 2 additions & 0 deletions projects/packages/identity-crisis/src/class-url-secret.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

namespace Automattic\Jetpack\IdentityCrisis;

use Automattic\Jetpack\Connection\Urls;
use Automattic\Jetpack\Tracking;
use Jetpack_Options;

/**
Expand Down
8 changes: 4 additions & 4 deletions projects/packages/jetpack-mu-wpcom/.phan/baseline.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
// PhanTypeMismatchArgument : 15+ occurrences
// PhanPluginDuplicateConditionalNullCoalescing : 8 occurrences
// PhanTypeMismatchReturn : 6 occurrences
// PhanUndeclaredClassMethod : 5 occurrences
// PhanTypeMismatchReturnProbablyReal : 4 occurrences
// PhanUndeclaredClassMethod : 4 occurrences
// PhanNoopNew : 3 occurrences
// PhanTypePossiblyInvalidDimOffset : 3 occurrences
// PhanUndeclaredFunction : 3 occurrences
Expand All @@ -25,7 +25,6 @@
// PhanTypeMismatchArgumentInternal : 2 occurrences
// PhanTypeMismatchDefault : 2 occurrences
// PhanTypeMissingReturn : 2 occurrences
// PhanUndeclaredFunctionInCallable : 2 occurrences
// PhanDeprecatedFunction : 1 occurrence
// PhanImpossibleTypeComparison : 1 occurrence
// PhanNonClassMethodCall : 1 occurrence
Expand All @@ -40,6 +39,7 @@
// PhanTypeVoidArgument : 1 occurrence
// PhanUndeclaredClassInCallable : 1 occurrence
// PhanUndeclaredConstant : 1 occurrence
// PhanUndeclaredFunctionInCallable : 1 occurrence

// Currently, file_suppressions and directory_suppressions are the only supported suppressions
'file_suppressions' => [
Expand All @@ -49,12 +49,12 @@
'src/features/admin-color-schemes/admin-color-schemes.php' => ['PhanUndeclaredConstant'],
'src/features/block-patterns/class-wpcom-block-patterns-utils.php' => ['PhanTypeMismatchReturnNullable'],
'src/features/cloudflare-analytics/cloudflare-analytics.php' => ['PhanUndeclaredClassMethod'],
'src/features/coming-soon/coming-soon.php' => ['PhanTypeArraySuspicious', 'PhanTypeMismatchArgumentInternal', 'PhanUndeclaredFunction', 'PhanUndeclaredFunctionInCallable'],
'src/features/coming-soon/coming-soon.php' => ['PhanTypeArraySuspicious', 'PhanTypeMismatchArgumentInternal', 'PhanUndeclaredFunction'],
'src/features/coming-soon/fallback-coming-soon-page.php' => ['PhanTypeMismatchArgument', 'PhanTypeVoidArgument'],
'src/features/error-reporting/error-reporting.php' => ['PhanPluginDuplicateConditionalNullCoalescing'],
'src/features/launchpad/class-launchpad-task-lists.php' => ['PhanNoopArrayAccess', 'PhanPluginDuplicateConditionalNullCoalescing', 'PhanTypeMismatchDefault', 'PhanTypeMismatchReturn', 'PhanTypePossiblyInvalidDimOffset'],
'src/features/launchpad/launchpad-task-definitions.php' => ['PhanRedundantCondition', 'PhanTypeArraySuspiciousNullable', 'PhanTypeComparisonToArray', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentInternal', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal', 'PhanTypeMissingReturn', 'PhanTypePossiblyInvalidDimOffset'],
'src/features/launchpad/launchpad.php' => ['PhanTypeArraySuspiciousNullable', 'PhanTypeMismatchArgument', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal', 'PhanUndeclaredClassMethod'],
'src/features/launchpad/launchpad.php' => ['PhanTypeArraySuspiciousNullable', 'PhanTypeMismatchArgument', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal'],
'src/features/marketplace-products-updater/class-marketplace-products-updater.php' => ['PhanTypeMismatchDimFetch', 'PhanTypeMismatchReturn'],
'src/features/media/heif-support.php' => ['PhanPluginSimplifyExpressionBool'],
'src/features/verbum-comments/class-verbum-comments.php' => ['PhanImpossibleTypeComparison', 'PhanNoopNew', 'PhanParamTooMany', 'PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredFunction'],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: removed

Remove reference to `wpcom_subs_js`, which was removed from wpcom in D104342-code (March 2023).
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: removed

Remove reference to `WPCOM_Launchpad`, which was removed from wpcom in D111041-code (May 2023).
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@ function render_fallback_coming_soon_page() {
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'wp_head', 'header_js', 5 );
remove_action( 'wp_head', 'global_css', 5 );
remove_action( 'wp_footer', 'wpcom_subs_js' );
remove_action( 'wp_footer', 'stats_footer', 101 );
add_filter( 'infinite_scroll_archive_supported', '__return_false', 99 ); // Disable infinite scroll feature.
add_filter( 'jetpack_disable_eu_cookie_law_widget', '__return_true', 1 );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1063,11 +1063,6 @@ function wpcom_launchpad_is_paid_newsletter_enabled() {
return wpcom_launchpad_has_goal_paid_subscribers() && apply_filters( 'wpcom_launchpad_intent_paid_newsletter_enabled', false );
}

// Unhook our old mu-plugin - this current file is being loaded on 0 priority for `plugins_loaded`.
if ( class_exists( 'WPCOM_Launchpad' ) ) {
remove_action( 'plugins_loaded', array( WPCOM_Launchpad::get_instance(), 'init' ) );
}

/**
* Add launchpad options to Jetpack Sync.
*
Expand Down
3 changes: 1 addition & 2 deletions projects/packages/my-jetpack/.phan/baseline.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
// PhanNoopNew : 6 occurrences
// PhanTypeMismatchReturn : 6 occurrences
// PhanUndeclaredClassMethod : 6 occurrences
// PhanUndeclaredStaticProperty : 6 occurrences
// PhanPluginDuplicateConditionalNullCoalescing : 5 occurrences
// PhanTypeMismatchReturnNullable : 3 occurrences
// PhanImpossibleCondition : 2 occurrences
Expand Down Expand Up @@ -47,7 +46,7 @@
'src/products/class-creator.php' => ['PhanTypeMismatchPropertyDefault', 'PhanTypeMismatchReturnProbablyReal'],
'src/products/class-crm.php' => ['PhanTypeMismatchPropertyDefault'],
'src/products/class-extras.php' => ['PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchPropertyDefault'],
'src/products/class-hybrid-product.php' => ['PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchReturnNullable', 'PhanUndeclaredStaticProperty'],
'src/products/class-hybrid-product.php' => ['PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchReturnNullable'],
'src/products/class-jetpack-ai.php' => ['PhanPluginDuplicateConditionalNullCoalescing', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal', 'PhanUndeclaredClassMethod'],
'src/products/class-module-product.php' => ['PhanTypeMismatchReturnProbablyReal', 'PhanUndeclaredClassMethod'],
'src/products/class-product.php' => ['PhanAbstractStaticMethodCallInStatic', 'PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchPropertyDefault'],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: added

Define `$module_name` static property on `Hybrid_Product` (defaulting to null).
Loading
Loading