1
0
forked from VimPlug/jedi

Evaluate annotations for dataclasses when infer is called on param

This commit is contained in:
Dave Halter
2019-07-19 11:42:08 +02:00
parent 93c52f615a
commit 5722a3458e
2 changed files with 11 additions and 4 deletions

View File

@@ -580,7 +580,10 @@ class DataclassParamName(BaseTreeParamName):
return self._default_node
def infer(self):
if self._annotation_node is None:
return NO_CONTEXTS # TODO implement
else:
return self.parent_context.eval_node(self._annotation_node)
class ItemGetterCallable(ContextWrapper):

View File

@@ -86,12 +86,16 @@ def test_dataclass_signature(Script, skip_pre_python37, start, start_params):
code = dedent('''
name: str
foo = 3
unit_price: float
quantity_on_hand: int = 0
price: float
quantity: int = 0.0
X(''')
code = 'from dataclasses import dataclass\n' + start + code
sig, = Script(code).call_signatures()
assert [p.name for p in sig.params] == start_params + ['name', 'unit_price', 'quantity_on_hand']
assert [p.name for p in sig.params] == start_params + ['name', 'price', 'quantity']
quantity, = sig.params[-1].infer()
assert quantity.name == 'int'
price, = sig.params[-2].infer()
assert price.name == 'float'