mirror of
https://github.com/davidhalter/jedi.git
synced 2026-01-09 13:32:20 +08:00
Handle generics appearing within quoted return annotations
This ensures that these quoted likely forwards references in return type annotations behave like their non-quoted equivalents. I suspect there may be other places which will need similar adjustments, which may mean that we should push the conversion a layer closer to the parsing (perhaps in `py__annotations__`?). One case I know that this doesn't solve (but which likely needs similar adjustment) is generics in return types of comment-style annotations. They're less likely and may not be worth supporting since all supported Python versions can use the in-syntax spelling for annotations at this point.
This commit is contained in:
@@ -58,6 +58,12 @@ def typed_bound_generic_passthrough(x: TList) -> TList:
|
||||
|
||||
return x
|
||||
|
||||
# Forward references are more likely with custom types, however this aims to
|
||||
# test just the handling of the quoted type rather than any other part of the
|
||||
# machinery.
|
||||
def typed_quoted_generic_passthrough(x: T) -> 'List[T]':
|
||||
return [x]
|
||||
|
||||
|
||||
for a in untyped_passthrough(untyped_list_str):
|
||||
#? str()
|
||||
@@ -146,6 +152,16 @@ for q in typed_bound_generic_passthrough(typed_list_str):
|
||||
q
|
||||
|
||||
|
||||
for r in typed_quoted_generic_passthrough("something"):
|
||||
#? str()
|
||||
r
|
||||
|
||||
for s in typed_quoted_generic_passthrough(42):
|
||||
#? int()
|
||||
s
|
||||
|
||||
|
||||
|
||||
class CustomList(List):
|
||||
def get_first(self):
|
||||
return self[0]
|
||||
|
||||
Reference in New Issue
Block a user