Commit Graph

2457 Commits

Author SHA1 Message Date
Eric Traut
4fb50e8011 Fixed spurious "variable is unbound" error when symbol was used in a compound conditional expression where the first part of the expression was statically determined to short-circuit the evaluation (e.g. if False and name:). 2020-10-03 01:13:10 -07:00
Eric Traut
3158a22b58 Fixed bug where float and complex values were being inferred as Literal types when PEP 586 clearly states that complex and float values are not supported for Literal. 2020-10-03 00:19:39 -07:00
Eric Traut
57175e8d3a Did another editing pass on the typed library documentation for readability and consistency. 2020-10-02 23:56:37 -07:00
Eric Traut
5cb41a9a6c Published 1.1.76 2020-10-02 18:15:34 -07:00
Eric Traut
db11ff5791 Added diagnostic check for static and class methods used for property getters, setters and deleters. 2020-10-02 18:13:55 -07:00
Eric Traut
af01be3244 Fixed documentation for building pyright. 2020-10-02 11:00:26 -07:00
Eric Traut
b2882fd6be Added support for the __all__ += <module>.__all__ idiom for mutating the __all__ value. This idiom is used by numpy. 2020-10-02 10:55:24 -07:00
Eric Traut
f0a231d7fc Fixed bug that caused symbols referenced by __all__ not to be marked as accessed in some cases. 2020-10-01 13:19:45 -07:00
Eric Traut
f7f5c1f8e7 Added support for __all__ assignments that include a type annotation. 2020-10-01 13:19:18 -07:00
Eric Traut
01c39df123 Improved handling of bidirectional type inference when RHS of assignment is a constructor. More changes to come on this front. 2020-09-30 18:15:28 -07:00
Eric Traut
9565833cc8 Added checks in type validator for metaclasses. 2020-09-30 18:15:28 -07:00
Eric Traut
7979c5d177 Added optimizations in type validator to avoid checking built-in classes. 2020-09-30 18:15:28 -07:00
Jake Bailey
a062092189
Fix paths when unset, fix tmpdir, other visual tweaks (#1074) 2020-09-30 12:41:59 -07:00
Eric Traut
98a28e450f Fixed bug where Enum constructor was not handling some variations of parameter types. 2020-09-29 15:54:12 -07:00
Eric Traut
05cdaf9344 Added missing section on type aliases within typed library documentation. 2020-09-29 15:16:48 -07:00
Eric Traut
67e94f4c8a Fixed markdown rendering issue in docs. 2020-09-29 15:04:51 -07:00
Eric Traut
1cb2a3a950 Added detailed documentation for the "--verifytypes" option. 2020-09-29 15:03:14 -07:00
Eric Traut
9c724205a5 Improved type verification report. 2020-09-29 00:16:24 -07:00
Eric Traut
01f41cb081 Fixed spurious error when "Literal" was used with a dynamic type argument in a place where a type annotation wasn't expected. 2020-09-28 18:32:05 -07:00
Eric Traut
9cb9f7e3dd Published 1.1.75 2020-09-28 16:37:01 -07:00
Eric Traut
11902f6dc0 Added support for __all__.append() idiom. 2020-09-28 16:25:47 -07:00
Eric Traut
bf3af4e1aa Added limiter for list type inference to clip the number of unique subtypes and avoid poor performance in some cases. 2020-09-28 16:13:12 -07:00
Eric Traut
04d35e9ce4 Fixed logic bug in dunder all processing for py.typed files. 2020-09-28 15:59:52 -07:00
Eric Traut
dc5cd387fc Implemented new "verifytypes" command-line option that analyzes a py.typed package and reports missing or partially-unknown types. 2020-09-28 14:49:32 -07:00
Eric Traut
bc298518e7 Implemented new rules for reexports within a py.typed module. ".py" files now follow PEP 484 rules with an override based on __all__. 2020-09-28 14:48:39 -07:00
Eric Traut
5ca499b112 Added support for additional idioms for __all__ manipulation, including __all__.extend() and __all__.remove(). The "extend" form also supports merging of __all__ lists from submodules. 2020-09-28 14:45:00 -07:00
Eric Traut
b6cd5eedae Fixed missing JSON field in command-line documentation. 2020-09-28 14:34:29 -07:00
Eric Traut
ee40041a88 Fixed bug in existing fourslash test. 2020-09-28 14:30:44 -07:00
Eric Traut
97f0a8946b Fixed bug in type inference for generator types. It was not properly adding the three type arguments for Generator in the inferred return type. 2020-09-28 10:12:45 -07:00
Eric Traut
a42d075b90 Improved handling of bidirectional type inference for constructor calls on generic types. In particular, the new logic better handles the case where the expected type is a union. 2020-09-28 09:17:32 -07:00
Eric Traut
9a991dc8d3 Fixed bug in callable type narrowing logic where the union of the type includes None. 2020-09-28 07:26:49 -07:00
Eric Traut
8c01e0d652 Cleaned up main CLI logic in prep for new type validation command. 2020-09-27 22:30:58 -07:00
Eric Traut
dd12062cbd Added getTotalDuration accessor in timing module. 2020-09-27 22:26:19 -07:00
Eric Traut
8fd30ffc55 Fixed bug in diagnostics reporting logic that caused stack overflow in some rare cases. 2020-09-27 22:26:07 -07:00
Eric Traut
546e14eaef Added missing hasDeclaredType setting in types. 2020-09-27 22:25:35 -07:00
Eric Traut
a2ecab1af4 Fixed bug with synthesized __set__ and __del__ property methods. The wrong parameter types were being specified for the 'self' and 'obj' parameters. 2020-09-27 22:24:27 -07:00
Eric Traut
701f209aea Fixed various places in the type evaluator where synthesized methods were not marking parameters as defined. 2020-09-27 22:23:41 -07:00
Eric Traut
c085b91dcc Added support for packages that define __all__ in terms of a tuple rather than a list. 2020-09-27 22:21:13 -07:00
Eric Traut
b51b131351 Fixed launch.json for launching the CLI. 2020-09-27 22:20:03 -07:00
Eric Traut
61f483fcb5 Fixed recent regression with isinstance narrowing. 2020-09-26 17:01:40 -07:00
Eric Traut
b44975440e Fixed incorrect handling of global name bindings when a same-named nonlocal name was present. 2020-09-26 16:57:41 -07:00
Eric Traut
dd7cf40957 Fixed broken unit test. 2020-09-26 11:25:30 -07:00
Eric Traut
a2c7e7c3fb Added check for position-only argument separator ("/") appearing as the first parameter in a parameter list. This is a syntax error. 2020-09-26 11:07:58 -07:00
Eric Traut
7f8b9b38cc Fixed bug in code that prints function types that contain a "named-parameter separator" ("*"). It was emitting an extra slash ("*/"). 2020-09-26 10:58:39 -07:00
Eric Traut
604a4dc70b Fixed several bugs related to recursive type aliases. The hover text was sometimes incorrect, type narrowing for "isinstance" was broken in some cases, and the reportUnnecessaryIsInstance rule was reporting incorrect errors. 2020-09-25 23:28:33 -07:00
Eric Traut
67d69ba0d1 Added type narrowing for expressions of the form "<string> in X" and "<string> not in X" where X is a union of TypedDict instances. 2020-09-25 22:39:36 -07:00
Eric Traut
693d10e3a1 Fixed a bug where spurious errors were generated when using an unannotated "self" as an argument to a constructor in a generic class. 2020-09-25 15:33:41 -07:00
Eric Traut
a12449d45e Fixed bug that caused incorrect error in case where bidirectional type inference was used with a list expression and the expected type was an empty protocol. 2020-09-25 10:08:11 -07:00
Eric Traut
90343f2d54 Improved detection of implicit type aliases. 2020-09-23 20:07:30 -07:00
Eric Traut
120da9aa91 Added special-case handling of values within enum classes in a py.typed package. They should be treated as constants and not require type annotations. 2020-09-23 18:54:59 -07:00