mirror of
https://github.com/davidhalter/jedi.git
synced 2026-01-09 13:32:20 +08:00
@@ -58,6 +58,7 @@ class VarClass:
|
||||
var_instance2: float
|
||||
var_class1: typing.ClassVar[str] = 1
|
||||
var_class2: typing.ClassVar[bytes]
|
||||
var_class3 = None
|
||||
|
||||
def __init__(self):
|
||||
#? int()
|
||||
@@ -70,11 +71,17 @@ class VarClass:
|
||||
d.var_class2
|
||||
#? []
|
||||
d.int
|
||||
#? ['var_class1', 'var_class2', 'var_instance1', 'var_instance2']
|
||||
#? ['var_class1', 'var_class2', 'var_instance1', 'var_instance2', 'var_class3']
|
||||
self.var_
|
||||
|
||||
class VarClass2(VarClass):
|
||||
var_class3: typing.ClassVar[int]
|
||||
|
||||
#? ['var_class1', 'var_class2', 'var_instance1']
|
||||
def __init__(self):
|
||||
#? int()
|
||||
self.var_class3
|
||||
|
||||
#? ['var_class1', 'var_class2', 'var_instance1', 'var_class3']
|
||||
VarClass.var_
|
||||
#? int()
|
||||
VarClass.var_instance1
|
||||
@@ -88,7 +95,7 @@ VarClass.var_class2
|
||||
VarClass.int
|
||||
|
||||
d = VarClass()
|
||||
#? ['var_class1', 'var_class2', 'var_instance1', 'var_instance2']
|
||||
#? ['var_class1', 'var_class2', 'var_class3', 'var_instance1', 'var_instance2']
|
||||
d.var_
|
||||
#? int()
|
||||
d.var_instance1
|
||||
|
||||
@@ -41,6 +41,26 @@ def test_in_empty_space(Script):
|
||||
assert def_.name == 'X'
|
||||
|
||||
|
||||
def test_classvar_completion(Script):
|
||||
code = dedent('''\
|
||||
from typing import ClassVar # 1
|
||||
class Foo: # 2
|
||||
var_class = None # 3
|
||||
def __init__(self, var_class=None): # 4
|
||||
self.var_class = var_class # 5
|
||||
class Bar(Foo): # 6
|
||||
var_class: ClassVar[int] # 7
|
||||
|
||||
def __init__(self): # 9
|
||||
self.var_class.
|
||||
int().
|
||||
''')
|
||||
expected_value = set(completion.name for completion in Script(code).complete(11, 14))
|
||||
for completion in Script(code).complete(10, 23):
|
||||
expected_value.remove(completion.name)
|
||||
assert len(expected_value) == 0
|
||||
|
||||
|
||||
def test_indent_value(Script):
|
||||
"""
|
||||
If an INDENT is the next supposed token, we should still be able to
|
||||
|
||||
Reference in New Issue
Block a user