Commit Graph

136 Commits

Author SHA1 Message Date
MDW
30b7ae336f
Qual: Enable dev/tools/phan/config.php 2024-03-23 13:14:35 +01:00
MDW
09b931e8fc
Qual: Enable PhanUndeclaredClassProperty 2024-03-23 03:19:04 +01:00
MDW
27091da3f3
Qual: Enable lidLeftOperandOfNumericOp 2024-03-23 02:06:57 +01:00
MDW
5c073dfb6e
Qual: Enable PhanTypeInvalidRightOperandOfAdd 2024-03-22 09:52:42 +01:00
MDW
b8c16af0a3
Qual: Enable PhanTypeInvalidLeftOperandOfAdd 2024-03-22 09:51:38 +01:00
MDW
3908b4df9d
Qual: Enable PhanTypeInvalidLeftOperandOfBitwiseOp (all fixed) 2024-03-21 13:44:54 +01:00
MDW
a69dcc9c5a
Qual: Enable PhanTypeMismatchArgumentSuperType 2024-03-20 04:09:19 +01:00
MDW
390d164f82
Qual: Ignore PhanTypeMismatchArgumentNullableInternal 2024-03-20 04:09:18 +01:00
MDW
6413341c96
Qual: Enable PhanTypeMismatchArgumentInternal 2024-03-20 04:09:17 +01:00
MDW
cd3ea72f96
Qual: Disable global variable suggestion for $website 2024-03-19 02:44:07 +01:00
MDW
3c968477cb
Change type of global $website to string 2024-03-19 02:44:04 +01:00
MDW
921431dbdc
Qual: Enable PhanTypeSuspiciousStringExpression 2024-03-19 02:44:03 +01:00
Laurent Destailleur
29a858aa68
Merge pull request #28924 from mdeweerd/fix/whitespace
Fix trailing whitespace + format code + minor spelling + enable checks
2024-03-19 02:14:13 +01:00
MDW
d2568a0878
Qual: Enable PhanUndeclaredVariableAssignOp 2024-03-18 13:12:53 +01:00
MDW
686facd74d
Fix PhanPluginWhitespaceTrailing + format code + minor spelling 2024-03-17 21:35:08 +01:00
MDW
aa6c20bf0d
Qual: Enable PhanPluginWhitespaceTrailing 2024-03-17 21:35:07 +01:00
Laurent Destailleur
bb0e18deae
Merge pull request #28922 from mdeweerd/fix/printf
Fix & enable Phan printf checks
2024-03-17 21:08:26 +01:00
MDW
7a4f5ec4f8
Qual: Enable some low occurence notifications 2024-03-17 20:12:27 +01:00
MDW
aa5aa2bf26
Add one more index to the theme_datacolor 2024-03-17 19:49:10 +01:00
MDW
d73886281c
Qual: Set typing for global 2024-03-17 18:56:44 +01:00
MDW
81d5f30466
Qual: Enable PhanPluginPrintfIncompatibleArgumentType 2024-03-17 18:56:43 +01:00
MDW
4232713e96
Qual: enable PhanPluginPrintfVariableFormatString 2024-03-17 18:21:35 +01:00
Laurent Destailleur
91c5868020
Merge pull request #28909 from mdeweerd/fix/PhanPluginUnknownClosureReturnType
Fix & enable PhanPluginUnknownClosureReturnType
2024-03-17 03:03:35 +01:00
MDW
551eaa115c
Fix & enable PhanPluginUnknownClosureReturnType
# Fix & enable PhanPluginUnknownClosureReturnType

Fix last PhanPluginUnknownClosureReturnType & enable the notice as
all are fixed
2024-03-17 00:10:18 +01:00
MDW
ef6eea3ed2
Qual: Fix PhanTypeExpectedObjectOrClassName by testing on classname
# Qual: Fix PhanTypeExpectedObjectOrClassName by testing on classname

PhanTypeExpectedObjectOrClassName should be fixed by testing that the classname is not
empty.
2024-03-17 00:03:20 +01:00
Laurent Destailleur
75fae0f27d
Merge branch 'develop' into fix/PhanTypeMismatchReturn 2024-03-16 16:08:08 +01:00
MDW
725e419a46
Qual: Enable PhanTypeMismatchReturn 2024-03-16 13:52:19 +01:00
MDW
7b53202f74
Qual: Enable detection of use of DeprecatedFunctions 2024-03-16 13:27:52 +01:00
Laurent Destailleur
a247b474d7
Merge pull request #28885 from mdeweerd/fix/phan/low_occurrence
Fix some phan notifications with low occurrence
2024-03-16 11:48:10 +01:00
MDW
8a83388905
Qual: Enable several phan notifications 2024-03-16 00:00:25 +01:00
MDW
375e4d7ccf
Qual: Enable PhanTypeMismatchArgumentInternalReal 2024-03-15 23:41:17 +01:00
Laurent Destailleur
372c8445fd
Merge pull request #28809 from mdeweerd/PhanPluginPrintfIncompatibleArgumentTypeWeak
Fix & enable PhanPluginPrintfIncompatibleArgumentTypeWeak occurrences
2024-03-15 16:32:40 +01:00
Laurent Destailleur
0ee6fd6bad
Merge pull request #28877 from mdeweerd/PhanTypeMismatchDefault
Fix & enable PhanTypeMismatchDefault
2024-03-15 15:44:30 +01:00
Laurent Destailleur
b658beab99
Merge pull request #28872 from mdeweerd/fix/PhanTypeMismatchReturnProbablyReal
Fix & enable PhanTypeMismatchReturnProbablyReal
2024-03-15 15:24:31 +01:00
Laurent Destailleur
1a722fa436
Merge branch 'develop' into fix/PhanTypeMismatchPropertyProbablyReal 2024-03-15 15:07:35 +01:00
MDW
1af4e90027
Qual: enable PhanTypeMismatchDefault 2024-03-15 14:53:07 +01:00
MDW
c7ad91cfc0
Qual: Enable PhanTypeMismatchReturnProbablyReal 2024-03-15 14:20:58 +01:00
Laurent Destailleur
066565938c
Merge pull request #28812 from mdeweerd/fix/PhanTypeSuspiciousEcho
Fix & enable PhanTypeSuspiciousEcho
2024-03-15 11:02:33 +01:00
MDW
651b5a22eb
Fix & enable PhanTypeSuspiciousEcho
# Fix & enable PhanTypeSuspiciousEcho

Fix occurences by improving typing - array key was not found and
supposed null in a print statement.

Example:
  PhanTypeSuspiciousEcho Suspicious argument $menu_array[$i]['prefix'] of type null for an echo/print statement

Enabled detection because all cases are fixed
2024-03-15 10:14:40 +01:00
MDW
ec6786ece3
Detect PhanTypeMismatchPropertyProbablyReal 2024-03-15 10:12:52 +01:00
MDW
3384a0b847
Fix & enable PhanUndeclaredTypeReturnType
# Fix & enable PhanUndeclaredTypeReturnType

One typo, and replace 'number' with int or int|float
2024-03-15 10:07:15 +01:00
Laurent Destailleur
1a63080e44
Merge branch 'develop' into fix/PhanTypeMismatchPropertyDefault 2024-03-15 08:41:23 +01:00
Laurent Destailleur
176d8173a6
Merge pull request #28861 from mdeweerd/fix/PhanPluginPHPDocInWrongComment
Fix & enable PhanPluginPHPDocInWrongComment
2024-03-15 08:28:47 +01:00
MDW
9fd8b8c8e8
Qual: Enable PhanTypeMismatchPropertyDefault 2024-03-15 03:55:53 +01:00
Laurent Destailleur
b23e627a05
Merge pull request #28800 from mdeweerd/PhanPluginDuplicateConditionalUnnecessa
Fix & enable PhanPluginDuplicateConditionalUnnecessary "X ? Y : Y"
2024-03-15 00:27:58 +01:00
Laurent Destailleur
c49968bb4b
Merge pull request #28825 from mdeweerd/fix/PhanNoopBinaryOperator
Fix & Enable PhanNoopBinaryOperator
2024-03-14 23:55:33 +01:00
MDW
ab7879c4a2
Fix & enable PhanPluginPHPDocInWrongComment
# Fix & enable PhanPluginPHPDocInWrongComment

Ignore error in file where the notification occurs & enable detection.
2024-03-14 23:36:24 +01:00
Laurent Destailleur
e478fd8cbc
Merge pull request #28859 from mdeweerd/fix/PhanPluginUnknownClosureParamType
Fix & enable PhanPluginUnknownClosureParamType
2024-03-14 23:10:37 +01:00
MDW
0f8b9e73f0
Fix: Enable/fix PhanPluginPrintfIncompatibleArgumentTypeWeak occurences
# Fix: Enable/fix PhanPluginPrintfIncompatibleArgumentTypeWeak occurences

Fix the PhanPluginPrintfIncompatibleArgumentTypeWeak occurences and fix the rule
2024-03-14 23:00:47 +01:00
MDW
43342c8978
Qual: Allow PhanNoopBinaryOperator (all fixed) 2024-03-14 22:57:43 +01:00
MDW
a408288ba1
Fix & enable PhanPluginUnknownClosureParamType
# Fix & enable PhanPluginUnknownClosureParamType

Typing of anonymous functions to fix this notice.
Optimised some minor things.
2024-03-14 22:42:26 +01:00
MDW
b2cbf7fe3c
Qual: Enable PhanPluginDuplicateConditionalUnnecessary notices (all fixed) 2024-03-14 19:47:27 +01:00
MDW
b28f6a2cba
Enable PhanNoopProperty 2024-03-14 19:37:47 +01:00
MDW
0127cc76f5
Qual: Enable PhanTypeInvalidUnaryOperandIncOrDec (all fixed) 2024-03-13 17:38:14 +01:00
Laurent Destailleur
cad8f24322
Merge pull request #28799 from mdeweerd/fix/PhanPluginDuplicateExpressionAssignmentOperation
Fix & enable PhanPluginDuplicateExpressionAssignment
2024-03-13 14:49:21 +01:00
Laurent Destailleur
4afadf6dc4
Merge pull request #28804 from mdeweerd/fix/PhanPluginUnknownFunctionParamType
Fix & enable PhanPluginUnknownFunctionParamType
2024-03-13 14:31:18 +01:00
Laurent Destailleur
c3f28b8592
Merge pull request #28802 from mdeweerd/PhanPluginRedundantAssignment
Fix PhanPluginRedundantAssignment
2024-03-13 11:04:02 +01:00
MDW
73eeb69cc8
Qual: Enable PhanPluginUnknownFunctionParamType (all fixed) 2024-03-13 10:51:46 +01:00
MDW
1debf4f538
# Fix & enable PhanPluginPrintfNotPercent
Fix PhanPluginPrintfNotPercent by setting format length to non 0 value.

Example of Notification message:

    'Format string "%0.10F" contains something that is not a percent sign, it will be treated as a format string '%0.10F' with padding of "0" and alignment of '' but no width. Use %% for a literal percent sign, or '%1$.10F' to be less ambiguous' .
2024-03-13 10:42:13 +01:00
MDW
fcca1b6987
Qual: Enable PhanPluginRedundantAssignment (all fixed) 2024-03-13 01:05:05 +01:00
MDW
6170ebe82e
Qual: Enable PhanPluginDuplicateExpressionAssignment, all fixed 2024-03-12 22:27:58 +01:00
MDW
4df31b5664
Qual: Enable PhanPluginMixedKeyNoKey, all cases fixed 2024-03-12 21:35:54 +01:00
Laurent Destailleur
a6926c29c0
Merge pull request #28778 from fappels/develop_fix_delivery_note
Fix shipping is not a delivery_note (is sub module of shipping)
2024-03-12 14:53:51 +01:00
Laurent Destailleur
367f47428f
Merge pull request #28734 from mdeweerd/fix/PhanTypeMismatchDimAssignment
Qual: Fix and enable PhanTypeMismatchDimAssignment
2024-03-12 14:20:34 +01:00
Laurent Destailleur
d62ef14064
Merge pull request #28768 from mdeweerd/fix/PhanTypeMismatchDeclaredParamNullable
Fix: PhanTypeMismatchDeclaredParamNullable & enable detection
2024-03-12 14:19:41 +01:00
Francis Appels
6f1b184f17 Merge remote-tracking branch 'Dolibarr/develop' into develop_fix_delivery_note 2024-03-12 14:13:41 +01:00
Francis Appels
75e99a6dee Fix phan tool for shipping 2024-03-12 11:21:42 +01:00
Frédéric France
c8c003a437 restore rule 2024-03-11 23:46:48 +01:00
Frédéric France
e60db40fa4 clean code and phpdoc 2024-03-11 22:20:29 +01:00
Frédéric France
7a7d342aaa clean code and phpdoc 2024-03-11 22:14:39 +01:00
MDW
200bc042bd
Qual: Enable PhanTypeMismatchDeclaredParamNullable
# Qual: Enable PhanTypeMismatchDeclaredParamNullable

The few cases for PhanTypeMismatchDeclaredParamNullable were fixed,
so the notification can be enabled
2024-03-11 16:48:55 +01:00
Laurent Destailleur
5c84032d41
Merge branch 'develop' into fix/PhanTypeMismatchDimAssignment 2024-03-11 12:56:23 +01:00
MDW
9c00a465c9
Qual: phan: Add more global definitions (#28745)
* Qual: phan: Add more global definitions

# Qual: phan: Add more global definitions

Add some more typing information for globals

* Qual: phan: ignore local conf file which may contain exceptions

* Qual: phan: add a few more global typings
2024-03-11 12:55:44 +01:00
MDW
c6fa4e4945
Qual: Enable reporting PhanTypeMismatchDimAssignment 2024-03-10 02:17:20 +01:00
MDW
6d9e7b8144
Qual: Fix PhanTypeMismatchArgumentInternalProbablyReal (#28732)
* Fix: False positive for PhanTypeMismatchArgumentInternalProbablyReal

* Qual: phan: suppress false positive on ssl_set

* Qual: Enable PhanTypeMismatchArgumentInternalProbablyReal

# Qual: Enable PhanTypeMismatchArgumentInternalProbablyReal

PhanTypeMismatchArgumentInternalProbablyReal are fixed and reporting can
be enabled.

* Qual: Fix PhanTypeMismatchArgumentInternalProbablyReal by improving typing

* Qual: Rewrite/optimize to fix PhanTypeMismatchArgumentInternalProbablyReal

# Qual: Rewrite/optimize to fix PhanTypeMismatchArgumentInternalProbablyReal

False positive detecting that  is not an int, rewriting to check
impact
2024-03-10 01:55:56 +01:00
MDW
d524e97137
Qual: Fix & enable PhanPluginRedundantAssignmentInLoop (#28733)
# Qual: Fix & enable PhanPluginRedundantAssignmentInLoop

Fixes the occurences that generated this notice & enable the report
for PhanPluginRedundantAssignmentInLoop
2024-03-10 01:54:34 +01:00
MDW
c95bab2818
Qual: Add check on addExtraField type argument (#28738)
* Qual: Add check on addExtraField type argument

# Qual: Add check on addExtraField type argument

Added a check on the type argument for addExtraField

* Qual: Update phan ignore with more specific name
2024-03-10 01:46:10 +01:00
MDW
0b19aa415c
Fix: Initialise array before assigning values (#28728)
* Qual: Enable PhanUndeclaredVariableDim

# Qual: Enable PhanUndeclaredVariableDim

The notifications are fixed in the code so the detection no longer
needs to be suppressed in the default flow

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Fix: initialise array before adding fields

* Qual: Add type hint to array to avoid phan notification

* Qual: Add type hint to array to avoid phan notification

* Qual: Enable PhanParamSpecial1 (all resolved)

* Qual: Ignore false PhanTypeArraySuspiciousNullable

* Qual: Improve typing to fix PhanTypeArraySuspicious

* Qual: Fix PhanTypeArraySuspicious by replacing null assignment with empty array

* Qual: Fix PhanTypeArraySuspicious by testing as instancof DebugBar

* Qual: Fix PhanTypeComparisonToArray with enhanced typing

* Qual: Fix PhanTypeComparisonToArray with enhanced typing

* Qual: Enable phan messages that no longer appear

* Qual: Exclude phan stubs from codesniffer ruleset
2024-03-09 16:32:02 +01:00
Laurent Destailleur
bb6cf2c6ed Fix warning 2024-03-08 23:00:55 +01:00
MDW
3d0a85608b
Qual: Fix and enable alias deprecation detection (#28716)
* Qual: Ignore some false positives for deprecated functions

# Qual: Ignore some false positives for deprecated functions

The Phan Deprecation Plugin for internal functions has mixed up some
mail functions and lists them as deprecated, this ignores that

* Qual: Enable detection and fixing of internal deprecations

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Replace 'join' with 'implode'

* Qual: Update codespell lines ignore list after format

# Qual: Update codespell lines ignore list after forma

Done using latest library, so also adds some exceptions that are needed
in the future;

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-03-08 21:34:18 +01:00
Laurent Destailleur
8528b3f363 Clean conf 2024-03-04 18:33:32 +01:00
Laurent Destailleur
dd3415b1ac Fix phan error and remove false alert 2024-02-29 16:41:00 +01:00
MDW
7391ad42ed
Qual: Enable detection of deprecated modulename & GETPOST(...,'int') (#28457)
* Qual: Enable detection of deprecated modulename & GETPOST(...,'int')

# Qual: Enable detection of deprecated modulename & GETPOST(...,'int')

Enable phan rules to verify deprecated modulename usage and GETPOST(...,'int')
usage in the code.

* Qual: Try type hint on  to help avoid notification

* Qual: Accept 3 parameters for GETPOST to GETPOSTINT conversion

* Qual: Convert GETPOST(...,'int',VALUE) to GETPOSTINT(...,VALUE)

# Qual: Convert GETPOST(...,'int',VALUE) to GETPOSTINT(...,VALUE)

Following the update to the fixer to also convert GETPOST... with 3 parameters.
The files are now converted.
2024-02-28 23:25:16 +01:00
MDW
1c3a035ae5
Qual: New Phan plugin for testing that argument matches regex (#28424)
* Qual: New Phan plugin for testing that argument matches regex

# Qual: New Phan plugin for testing that argument matches regex

This Plugin - currently applied to GETPOST - allows verifying that a selected
argument of a function matches a regular expression.

* Qual: Add isModEnabled verification to phan

# Qual: Add isModEnabled verification in phan

Using ParamMatchRegexPlugin, add isModEnabled parameter verification.

* Qual: Verify sanitizeVal check value

# Qual: Verify sanitizeVal check value

Use ParamMatchPlugin to check sanitizeVal check value

* Qual: Extend ParamMatchRegexPlugin with class_method

# Qual: Extend ParamMatchRegexPlugin with class_method

Allow matching class methods for argument verification.

* Update config.php

* Qual: New Phan plugin for testing that argument matches regex

# Qual: New Phan plugin for testing that argument matches regex

This Plugin - currently applied to GETPOST - allows verifying that a selected
argument of a function matches a regular expression.

* Qual: Add isModEnabled verification to phan

# Qual: Add isModEnabled verification in phan

Using ParamMatchRegexPlugin, add isModEnabled parameter verification.

* Qual: Verify sanitizeVal check value

# Qual: Verify sanitizeVal check value

Use ParamMatchPlugin to check sanitizeVal check value

* Qual: Extend ParamMatchRegexPlugin with class_method

# Qual: Extend ParamMatchRegexPlugin with class_method

Allow matching class methods for argument verification.

* Report scalar values (see null, etc)

* Qual: Ignore false Phan Notification

* Qual: Ignore false Phan Notification

* Qual: Fix Phan needs specific message keys for coloring.

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-02-26 23:10:16 +01:00
MDW
0d60041d8f
Qual: Add custom phan plugin to detect var_dump (#28420)
# Qual: Add custom phan plugin to detect var_dump

This adds a custom plugin to detect the presence of var_dump.

Also disable a standard plugin in the extended configuration
(avoid reporting suggestions to add typing to the function
definitions (/declarations).
2024-02-25 22:11:25 +01:00
MDW
8655d5a86b
QUAL Use phan to help detect new issues (#27706)
* Qual: Add phan flow

- Add phan configuration (config, baseline, stubs);
- Add github action;
- Update apstats.php.

* Add directives to ignore false phan notices

* Qual: Add typing hints for extrafields TPL files

# Qual: Add typing hints for extrafields TPL files

Add typing hints for phan on view files

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-02-21 18:14:29 +01:00