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
Brown
9573429f1e
Always disable uopz
...
Ref #1741
2019-06-06 10:36:26 -04:00
Matthew Brown
90b160aece
Allow extensions to be disabled during --init
...
Ref #1741
2019-06-06 08:42:44 -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
99e6cd819f
Remove unnecessary command
2019-06-03 12:30:20 -04:00
Brown
65a7c1bbcd
Improve documentation for psalm-refactor
2019-06-03 12:24:32 -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
Barney Laurance
e0486ba757
Fix psalm --alter ( #1719 )
2019-06-01 09:22:39 -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
24a484c9dc
Turn on unused code detection with --issues=all
2019-05-31 13:48:03 -04:00
Brown
6f5da23840
Remove redundant check
2019-05-31 13:22:40 -04:00
Brown
ad18eecc13
Disable progressbar when CI is detected
2019-05-31 13:12:22 -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
Brown
c9cfa7f010
Add error when reconciling impossible types
2019-05-28 18:33:23 -04:00
Brown
201030928d
Fix case insensitive string comparison
2019-05-28 15:46:56 -04:00
Brown
b19d256b14
Add better error message for templated key-of param
2019-05-28 14:23:22 -04:00
Brown
602bae3bb3
Allow class_exists(..., false) to inform class-string type
2019-05-28 13:16:09 -04:00
Brown
81b6a6f496
Support assertions on class constants
2019-05-28 12:31:46 -04:00
Brown
0e6d07c4e9
Add ancillary var types
2019-05-28 11:58:15 -04:00
Brown
a89892a41f
Prevent more broad template types being captured
2019-05-28 11:54:07 -04:00
Brown
7df88197ef
Fix #762 - support key-of and value-of types
2019-05-28 10:44:04 -04:00
Matthew Brown
a001616753
Remove object-like array under falsy assertion when it contains a sure key
2019-05-28 00:32:27 -04:00