1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-16 19:36:59 +01:00
Commit Graph

3500 Commits

Author SHA1 Message Date
Matthew Brown
c0a9ccb385 Fix handling of unused params in threaded mode 2019-06-09 17:02:21 -04:00
Matthew Brown
348ed24881 Remove unused things 2019-06-09 13:12:08 -04:00
Matthew Brown
0145e60e6a Allow property default to include value-of option 2019-06-09 12:47:27 -04:00
Matthew Brown
b5cbc84351 Fix #1617 - add option to only show errors in reports 2019-06-09 12:37:28 -04:00
Matthew Brown
3a5a347b0b Fix #1747 - be tolerant of slash differences in baseline 2019-06-09 10:30:14 -04:00
Matthew Brown
93f81f599e Fix #1764 - prevent UndefinedInterfaceMethod error when checking initialisation 2019-06-09 09:18:05 -04:00
Matthew Brown
537fbf059a Allow moving instance method into subclass 2019-06-08 16:59:19 -04:00
Matthew Brown
395057c6df Fix #1738 - constrain template type when class-string<T> is a param 2019-06-08 11:08:08 -04:00
Matthew Brown
c38108f95d Fix byref array assignment
Fixes #1702
2019-06-08 10:32:46 -04:00
Matthew Brown
42cc201e9e Fix #1698 - better understand inherited docblock return types 2019-06-08 09:44:22 -04:00
Matthew Brown
b0678bdc74 Improve treatment of key-of
Ref #1698
2019-06-07 21:27:50 -04:00
Matthew Brown
2fa0f27872 Prevent LessSpecificImplementedReturnType with extended template 2019-06-07 18:42:26 -04:00
Brown
c81a9a8737 Fix #1742 - allow is_countable assertion to mean something 2019-06-07 15:49:10 -04:00
Brown
4660beb28e Still look at param defaults even without param types 2019-06-07 14:24:15 -04:00
Brown
3c3c8cd3b9 Always analyse class constants 2019-06-07 13:23:52 -04:00
Brown
b00d51b7db Allow misplaced required params so Psalm still inspects the code 2019-06-07 09:25:12 -04:00
Matthew Brown
20c66f693e Fix handling of class const types 2019-06-06 18:46:40 -04:00
Matthew Brown
36ac342496 Fix handling of property type with default 2019-06-06 17:42:23 -04:00
Matthew Brown
4a954acf84 Improve printing of literal types 2019-06-06 17:39:14 -04:00
Matthew Brown
b091ceaa9a Fix union of literal class string 2019-06-06 17:18:24 -04:00
Brown
9aeaf1a4ed Fix #1746 - allow DeprecatedInterface to be suppressed with referencedClass 2019-06-06 14:48:33 -04:00
Brown
b1d1ab974c Preserve formatting of callable type 2019-06-06 14:27:49 -04:00
Brown
0221282074 Be resilient to docblock spaces 2019-06-06 13:57:00 -04:00
Brown
2e7d26af6a Replace object-like types too 2019-06-06 13:28:56 -04:00
Matthew Brown
0287adfd44 Fix const replacements when moving classes 2019-06-06 07:05:30 -04:00
Matthew Brown
4fc5d1d5c8 Rewrite use statements 2019-06-05 22:13:33 -04:00
Matthew Brown
c6063d1378 Only replace same-file param docblock types 2019-06-05 19:32:27 -04:00
Brown
ddd287fb3d Move exception classes 2019-06-05 11:33:04 -04:00
Brown
6f0a6201de Fix static calls after moving 2019-06-05 11:22:09 -04:00
Brown
3e15fa8bfe Fix bad namespacing 2019-06-05 11:15:52 -04:00
Matthew Brown
f327d75116 Add actual file moving 2019-06-05 08:50:24 -04:00
Matthew Brown
ad4e2f72e2 Add means to guess PSR4 file path 2019-06-05 08:50:24 -04:00
Brown
f309c755f8 Add ability to move classes 2019-06-05 08:50:24 -04:00
Matthew Brown
13779e760e Fix #1736 - forbid | in @psalm-assert 2019-06-05 00:46:55 -04:00
Brown
c7f35c263c Fix #1737 properly 2019-06-04 14:08:49 -04:00
Brown
67c9851b95 Fix Psalm bug, and add test to capture it 2019-06-04 13:43:11 -04:00
Brown
d34c1a94db Fix #1737 - treat !isset($x, $y) properly 2019-06-04 13:43:09 -04:00
Brown
778b95d335 Add support for moving class constants 2019-06-04 11:14:49 -04:00
Matthew Brown
a9809ab28a Add property moving & renaming 2019-06-04 00:32:19 -04:00
Brown
20422cf223 Fix #1730 - parse @param * $foo properly 2019-06-03 15:46:25 -04:00
Brown
523ad144a2 Fix @psalm-suppress with newline 2019-06-03 15:02:28 -04:00
Brown
3cbadf2eff Fix regex 2019-06-03 12:24:18 -04:00
Brown
87d7ca8672 Trim lagging asterisks 2019-06-03 12:13:38 -04:00
Brown
9d1b620f55 Fix too-long line 2019-06-03 11:26:25 -04:00
Brown
ae8ccdbcd7 Add add info notification to progress 2019-06-03 11:20:42 -04:00
Brown
6eecb46b34 Fix #1725 - mcrypt_get_cipher_name was incorrect 2019-06-03 10:35:16 -04:00
Brown
29eda50ed9 Fix #1716 - no notice when using single arg in min 2019-06-03 10:33:54 -04:00
Brown
2f29dcce93 Fix #1728 - remove extra data in template-extends annotation 2019-06-03 10:28:54 -04:00
Marco Pivetta
624c7bc6fb Renamed Fn to TFn to allow for PHP 7.4 compatibility 2019-06-03 08:21:25 -04:00
Matthew Brown
fc0f625f62 Add safeguards to prevent bad refactor input 2019-06-02 23:33:57 -04:00
Matthew Brown
2439a9f6a0 Allow instance method renaming, too 2019-06-02 12:02:39 -04:00
Bruce Weirdan
1c03d6f076 Implemented multiple composer roots for plugins (#1723)
Refs vimeo/psalm#1710
2019-06-02 11:23:56 -04:00
Bruce Weirdan
8534955572 Namespace autoloaded functions (#1724)
Since functions defined in files referenced in 'files' section in
composer autoload config are automatically loaded when composer
autoloader is included (for example when Psalm is installed into project
vendors), it's good idea to keep them namespaced. Otherwise it would
prevent dependents to declare their own functions in the global
namespace with the same names.
2019-06-02 11:23:25 -04:00
Matthew Brown
5eb7cb9b04 Improve file update progress output 2019-06-02 09:59:45 -04:00
Matthew Brown
0ad57695a8 Clone atomic extra types as well 2019-06-02 09:52:57 -04:00
Matthew Brown
2b0a17c1c8 Add simple tool to move static methods 2019-06-02 01:10:50 -04:00
Matthew Brown
a8046376dd Use existing method in functiondocblockmanipulator 2019-06-01 18:46:24 -04:00
Matthew Brown
c569f3932c Use separate method for parsing docblocks 2019-06-01 18:44:59 -04:00
Matthew Brown
22b6c8120a Fix spacing issue 2019-06-01 17:22:33 -04:00
Matthew Brown
08544b8af9 Fix build 2019-06-01 17:10:53 -04:00
Matthew Brown
62be1cc1b0 Add rest of files 2019-06-01 16:57:33 -04:00
Matthew Brown
736f01c29e Store more accurate return type location 2019-06-01 13:02:20 -04:00
Matthew Brown
e438387149 Shorten too-long line 2019-06-01 12:26:48 -04:00
Matthew Brown
909e02d441 Move var docblocks within function 2019-06-01 12:25:57 -04:00
Matthew Brown
dc5a5bcd9d Simplify var docblock parsing signature 2019-06-01 11:53:32 -04:00
Matthew Brown
bee87c25eb Add transformations for new A, param A 2019-06-01 10:32:49 -04:00
Matthew Brown
7e4de611bf Migrate class references in static calls 2019-06-01 10:07:45 -04:00
Bruce Weirdan
169121b6fd Fall back to autoload when loading plugin classes (#1717)
* Fall back to autoload when loading plugin classes

This allows to use plugins installed alongside Psalm (when it's not
installed in the project being analyzed).

This fixes (partially) vimeo/psalm#1710

* cs fix
2019-06-01 08:53:42 -04:00
Jørn Åne
0420865f72 Mark passphrase in openssl as nullable (#1718) 2019-06-01 08:53:11 -04:00
Bruce Weirdan
1b0158ad72 Fixed vimeo/psalm#1714 (#1715)
* Fixed vimeo/psalm#1714

Moved `isAbsolutePath()` into a functions file (`src/functions.php`)
that is now automatically loaded by composer autoload.

/cc: @jwage

* Dropped redundant bootstrap
2019-06-01 08:26:22 -04:00
Matthew Brown
a252fb84da Fix namespaced method moving 2019-06-01 01:33:21 -04:00
Matthew Brown
cc89b9254d Add initial ideas for moving static methods
Ref #1595
2019-06-01 00:56:54 -04:00
Matthew Brown
01f4e39719 Remove redundant code from toNamespacedString 2019-05-31 20:21:47 -04:00
Matthew Brown
f5e4b9b45f Fix #1713 - don’t crash when a property is unset 2019-05-31 19:49:24 -04:00
Brown
5d39158787 Buffer messages a little, to reduce inter-process communication 2019-05-31 12:14:53 -04:00
Brown
543ae4074c Change progressbar shading 2019-05-31 11:55:47 -04:00
Brown
a060da95bf Allow MissingParamType alteration to be done in multithreaded mode 2019-05-31 11:55:24 -04:00
Brown
534e4c034b Fix replacement for inherited methods 2019-05-31 10:37:26 -04:00
Matthew Brown
4002504ff0 Allow trait_exists to inform type for ReflectionClass 2019-05-31 09:43:46 -04:00
Matthew Brown
84c0554595 Get function analyser once per method 2019-05-31 01:49:54 -04:00
Matthew Brown
cd969c51e5 Generate missing param types from callers
Fixes #1707
2019-05-31 01:47:35 -04:00
Brown
e40aed53d4 Use Phan’s progress bar for large file counts, because it’s good 2019-05-30 19:00:26 -04:00
Brown
34b0310594 Lighten shade for default progress 2019-05-30 18:39:13 -04:00
Brown
dedd4aced0 Use a horizontal progress bar with more than 1500 files
cc @iluuu1994
2019-05-30 18:37:01 -04:00
Brown
9d7cf66279 Attempt to buffer unsent messages 2019-05-30 16:54:15 -04:00
Brown
8fd59674a2 Disable progress bar when forking processes 2019-05-30 15:15:12 -04:00
Brown
1774d4029b Disable progressbar in threaded mode 2019-05-30 14:56:11 -04:00
Brown
1321b44e9f Improve logic for Psalm 2019-05-30 14:47:31 -04:00
Brown
7839da14e0 Add some basic retry logic 2019-05-30 14:29:15 -04:00
Brown
2975642a7a Ignore task done message error 2019-05-30 14:10:22 -04:00
Brown
76bdfb7c7b Ignore range issues with serialised message 2019-05-30 13:50:00 -04:00
Brown
7c069a9ba7 Suppress errors when baseline is enabled 2019-05-30 10:42:16 -04:00
Ilija Tovilo
5a14e4b1cf Progress bar (#1709)
* Revert "Revert "Implement better progress""

This reverts commit 4302596654.

* Revert "Revert "Implement dots progress bar""

This reverts commit e41733d789.

* Revert "Revert "Switch to VoidProgress by default""

This reverts commit 304ffeb0a3.

* Revert "Revert "Pass success flag to progress""

This reverts commit 62a690ee4e.

* Improve socket communication

* Use an underscore

* Add means to disable progress

* Add extra newline before progress bar
2019-05-30 10:30:41 -04:00
Matthew Brown
f961da53b7 Fix typos 2019-05-30 08:53:20 -04:00
Matthew Brown
0555bd9ff6 Prevent InternalMethod at implicit __get 2019-05-30 08:50:50 -04:00
Matthew Brown
962d8f30a1 Fix #710 - treat keyed intersections of iterators properly 2019-05-29 19:58:54 -04:00
Brown
e85794038f Fix #1704 - improve type coercion complaints 2019-05-29 14:22:15 -04:00
Matthew Brown
e31cdf3be5 Fix #1701 - allow count to be called on SimpleXMLElement 2019-05-29 07:56:06 -04:00
Matthew Brown
4f48c6388d Fix #1700 - interpret false===($a || $b) correctly 2019-05-29 07:47:31 -04:00
Brown
9b508d932d Improve specificity of explicit negated expression checks 2019-05-28 19:15:47 -04:00