mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 22:14:27 +08:00
removed pr.String and pr.Number in favor of the more general pr.Literal
This commit is contained in:
@@ -92,14 +92,14 @@ class Array(use_metaclass(CachedMetaClass, pr.Base)):
|
||||
if len(key_expression_list) != 1: # cannot deal with complex strings
|
||||
continue
|
||||
key = key_expression_list[0]
|
||||
if isinstance(key, pr.String):
|
||||
str_key = key.value
|
||||
if isinstance(key, pr.Literal):
|
||||
key = key.value
|
||||
elif isinstance(key, pr.Name):
|
||||
str_key = str(key)
|
||||
key = str(key)
|
||||
else:
|
||||
continue
|
||||
|
||||
if mixed_index == str_key:
|
||||
if mixed_index == key:
|
||||
index = i
|
||||
break
|
||||
if index is None:
|
||||
|
||||
@@ -1069,9 +1069,7 @@ class Statement(Simple):
|
||||
|
||||
is_literal = token_type in [tokenize.STRING, tokenize.NUMBER]
|
||||
if isinstance(tok, Name) or is_literal:
|
||||
cls = Call
|
||||
if is_literal:
|
||||
cls = String if token_type == tokenize.STRING else Number
|
||||
cls = Literal if is_literal else Call
|
||||
|
||||
call = cls(self._sub_module, tok, start_pos, end_pos, self)
|
||||
if is_chain:
|
||||
@@ -1243,14 +1241,6 @@ class Literal(StatementElement):
|
||||
return "<%s: %s>" % (type(self).__name__, s)
|
||||
|
||||
|
||||
class String(Literal):
|
||||
pass
|
||||
|
||||
|
||||
class Number(Literal):
|
||||
pass
|
||||
|
||||
|
||||
class Array(StatementElement):
|
||||
"""
|
||||
Describes the different python types for an array, but also empty
|
||||
|
||||
@@ -37,15 +37,15 @@ class TestCallAndName():
|
||||
|
||||
def test_literal_type(self):
|
||||
literal = self.get_call('1.0')
|
||||
assert isinstance(literal, pr.Number)
|
||||
assert isinstance(literal, pr.Literal)
|
||||
assert type(literal.value) == float
|
||||
|
||||
literal = self.get_call('1')
|
||||
assert isinstance(literal, pr.Number)
|
||||
assert isinstance(literal, pr.Literal)
|
||||
assert type(literal.value) == int
|
||||
|
||||
literal = self.get_call('"hello"')
|
||||
assert isinstance(literal, pr.String)
|
||||
assert isinstance(literal, pr.Literal)
|
||||
assert literal.value == 'hello'
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user