support for unicode/str and float/int literals (different returns)

This commit is contained in:
David Halter
2012-05-13 16:24:33 +02:00
parent 92df46bd58
commit 361c478541
3 changed files with 5 additions and 8 deletions

View File

@@ -837,13 +837,10 @@ def follow_call(scope, call):
if isinstance(current, parsing.Array):
result = [Array(current)]
else:
# TODO add better care for int/unicode, now str/float are just used
# instead
if not isinstance(current, parsing.NamePart):
if current.type == parsing.Call.STRING:
scopes = get_scopes_for_name(builtin.Builtin.scope, 'str')
elif current.type == parsing.Call.NUMBER:
scopes = get_scopes_for_name(builtin.Builtin.scope, 'float')
if current.type in (parsing.Call.STRING, parsing.Call.NUMBER):
t = type(current.name).__name__
scopes = get_scopes_for_name(builtin.Builtin.scope, t)
else:
debug.warning('unknown type:', current.type, current)
# make instances of those number/string objects

View File

@@ -160,7 +160,7 @@ a.
def gen():
yield 1
yield ""
yield u""
gen_exe = gen()

View File

@@ -241,5 +241,5 @@ gen_exe = gen()
next(gen_exe).upper
#? ['real']
next(gen_exe).real
#? float() str()
#? int() str()
next(gen_exe)