Commit Graph

7961 Commits

Author SHA1 Message Date
Eric Traut
027fb24282 Fixed several bugs dealing with object/class. binding. 2019-05-01 02:16:30 -07:00
Eric Traut
716bf9cac2 Added support for "for" statements that rely on iterating over objects that provide __getitem__, as per PEP 234. 2019-04-30 22:33:28 -07:00
Eric Traut
ff56d44278 Added type inference support for list comprehension expressions.
Improved inference logic for dict and list literals.
Fixed bug #101: infer Generator return type for generator functions.
2019-04-30 21:54:00 -07:00
Eric Traut
8cb6f86ca8 Fixed bug #97: Pyright was failing to search beyond the first import path in the search path when using fall-back paths from the python interpreter. 2019-04-30 12:41:58 -07:00
Eric Traut
51f4c209e1 Published 1.0.20 2019-04-30 10:45:25 -07:00
Eric Traut
62184fdb1f Added code to clear the "always returns" and "always raises" flags in a permanent scope before each analysis pass. 2019-04-30 08:35:47 -07:00
Eric Traut
e32c2ee510 Updated logic for reporting unknown types for local variables and class members. The reporting is now done at the site of the assignment where the unknown is introduced. 2019-04-30 00:40:52 -07:00
Eric Traut
92ffc9ff8d Renamed addUnboundSymbol to addSymbol.
Cleaned up imports.
2019-04-29 23:29:19 -07:00
Eric Traut
e1e90fd04f Allow imported symbols to be reassigned. 2019-04-29 23:10:08 -07:00
Eric Traut
01aac25041 More simplification and fixed regression in unbound variable reporting. 2019-04-29 22:40:11 -07:00
Eric Traut
6770dc9d35 Removed a bunch more logic and complexity out of semantic analyzer. 2019-04-29 22:10:11 -07:00
Eric Traut
3b7739a87b Removed a bunch of logic and complexity from semantic analyzer. 2019-04-29 22:00:30 -07:00
Eric Traut
bc4ed98d05 Small cleanup. 2019-04-29 21:41:27 -07:00
Eric Traut
24cb86a02b Fixed several regressions from previous check-in. 2019-04-29 21:32:46 -07:00
Eric Traut
fd3d317701 Major reworking of symbols and scopes. Eliminated the need to merge symbol tables. Eliminated the notion of a "currentType" for a symbol. 2019-04-29 19:21:07 -07:00
Eric Traut
6b4afc744a Fixed several bugs found during manual testing. 2019-04-28 23:57:43 -07:00
Eric Traut
71ffa702ed Renamed reportUnknownParameter to reportUnknownParameterType. Added reportUnknownVariableType and reportUnknownMemberType. 2019-04-28 22:20:29 -07:00
Eric Traut
f8e9dacccb Changed reportUnknownParameter to also flag inferred Any return types, not just Unknown. 2019-04-28 21:17:28 -07:00
Eric Traut
1c877e4248 Removed the requirement that type annotations not use bytes, unicode, or raw strings. 2019-04-28 20:56:58 -07:00
Eric Traut
955074c634 Added documentation for new strict mode. 2019-04-28 12:59:19 -07:00
Eric Traut
aecd8f7114 Added support for file-level "strict mode" that can be enabled by adding a comment "# pyright: strict" somewhere in the file. 2019-04-28 12:51:12 -07:00
Eric Traut
298f0b9620 Updated tokenizer to include comments that precede each token. 2019-04-28 12:19:37 -07:00
Eric Traut
fb4f0648e8 Reduced verbosity of command-line output by default. 2019-04-28 12:19:11 -07:00
Eric Traut
5216aac277 Fixed regression in command-line parsing of files. 2019-04-28 12:18:54 -07:00
Eric Traut
daf6b6f106 #91: Added code to convert file specs passed in at the command-line from relative to absolute. 2019-04-28 08:58:26 -07:00
Eric Traut
93595c1720 Added new config switch "reportUnknownParameter" to control reporting of unknown input and return parameter types. 2019-04-28 01:51:22 -07:00
Eric Traut
a442c60c95 Added support for early-termination expression type constraints for "or" operator. 2019-04-27 23:39:36 -07:00
Eric Traut
68696e189e Added code path to look for both 'lib' and 'Lib' within venv to support Windows. 2019-04-27 22:26:40 -07:00
Eric Traut
7a9153ef1d More improvements to logging for import paths. 2019-04-27 21:55:30 -07:00
Eric Traut
2872dc508d Missed package-lock file. 2019-04-27 19:20:05 -07:00
Eric Traut
29fae553f9 Published 1.0.19 2019-04-27 19:14:22 -07:00
Eric Traut
375e35e56d Added a bunch of verbose diagnostic information to help resolve import resolution issues. 2019-04-27 19:04:37 -07:00
Eric Traut
9077e7d392 Fixed bug in unreachable code detection logic relating to try/except/else blocks. 2019-04-27 18:08:03 -07:00
Eric Traut
d153d44c83 Added code to infer dictionary key types -- and sometimes the value types as well. 2019-04-27 18:07:42 -07:00
Eric Traut
cdda49cd74 Added better error logging to help diagnose import resolution issues when using paths from the python interpreter. 2019-04-27 17:20:45 -07:00
Eric Traut
9b15ef14f3 Fixed false positive error related to arg/param matching when unpacked arg is used. 2019-04-27 17:00:00 -07:00
Eric Traut
ff9f461cec Improved error reporting for assignment type validation. 2019-04-27 16:37:07 -07:00
Eric Traut
0f38625e0a Added support for validating type of property setter. 2019-04-27 16:23:27 -07:00
Eric Traut
1432bf5a2f Revamped type constraint system. The new implementation is less kludgy, simpler, and handles more cases. 2019-04-27 15:38:29 -07:00
Eric Traut
29aa5e56e1 Another simplification. 2019-04-27 14:11:45 -07:00
Eric Traut
adbcb742de Rewrote Scope.combineConditionalScopes to be a static method that doesn't modify the original scope. 2019-04-27 14:00:00 -07:00
Eric Traut
f9cbfe03ac Fixed a few more issues. 2019-04-27 13:31:27 -07:00
Eric Traut
92f56e9a91 Fixed minor error in previous check-in. 2019-04-27 12:41:18 -07:00
Eric Traut
e392de17c5 Added logic to mark unreachable code after return and raise statements. Fixed several bugs in the previous tracking logic. 2019-04-27 12:26:26 -07:00
Eric Traut
cb662155a6 Fixed test case. 2019-04-27 11:30:36 -07:00
Eric Traut
7814b022ad Simplified scope merging code. 2019-04-27 11:25:13 -07:00
Eric Traut
9f8ef27105 Another small simplification. 2019-04-27 11:07:52 -07:00
Eric Traut
a60934dc57 Further simplified TypeConstraint. 2019-04-27 09:41:13 -07:00
Eric Traut
9e8b2ff93b Removed specialized TypeConstraint types. 2019-04-27 09:29:23 -07:00
Eric Traut
9992cd1293 Fixed regression in previous change. 2019-04-27 08:27:07 -07:00