Files
codeql/python/ql/test/library-tests/PointsTo/lookup/test.py
2018-11-19 15:15:54 +00:00

144 lines
1.7 KiB
Python

from __future__ import unicode_literals
import sys
class C(object):
x = 'C_x'
def __init__(self):
self.y = 'c_y'
class D(C):
pass
if len(sys.argv) > 2:
v1 = C
else:
v1 = D
v2 = v1()
def f():
if len(sys.argv) > 3:
v3 = C()
else:
v3 = D()
return v3
def g(arg):
return arg
class X(object):
@classmethod
def method1(cls):
pass
@deco
def method2(self):
pass
v4 = g(f())
def deco(f):
return f
class Y(object):
@deco
def method2(self):
pass
v1
v2
v3
v4
list
def h(args):
if len(sys.argv) > 4:
v5 = C()
else:
v5 = D()
return v5, list(args)
def j():
return tuple, dict
dict
dict = 7
dict
tuple = tuple
tuple
from abc import abstractmethod
abstractmethod
from module import unknown
unknown
#Value of variables in inner functions
def outer():
y = 1
def inner(x):
return x + y + z + unknown + list
z = 2;
return inner
def outer_use_vars(x):
y = 1
def inner():
return x + y + z + unknown + list
z = 2;
y + z
return inner
y = lambda x : following()
def following():
pass
def params_and_defaults(a, b={}, c = 1):
a
b
c
def inner_cls():
class A(BaseException):
pass
a = A()
raise a
z
def multiple_assignment():
_tuple, _list = tuple, list
_tuple
_list
def vararg_kwarg(*t, **d):
t
d
class E(object):
def _internal(arg):
# arg is not a C
def wrapper(args):
return arg(args)
return wrapper
@_internal
def method(self, *args):
pass
x = 1
x
#Global in class scope
class F(object):
x = x
x