2017-04-18 19:49:48 -04:00
|
|
|
# test super() operations which don't require allocation
|
|
|
|
import micropython
|
|
|
|
|
2017-12-11 04:58:44 -05:00
|
|
|
# Check for stackless build, which can't call functions without
|
|
|
|
# allocating a frame on heap.
|
|
|
|
try:
|
2021-03-15 09:57:36 -04:00
|
|
|
|
|
|
|
def stackless():
|
|
|
|
pass
|
|
|
|
|
|
|
|
micropython.heap_lock()
|
|
|
|
stackless()
|
|
|
|
micropython.heap_unlock()
|
2017-12-11 04:58:44 -05:00
|
|
|
except RuntimeError:
|
|
|
|
print("SKIP")
|
|
|
|
raise SystemExit
|
|
|
|
|
2021-03-15 09:57:36 -04:00
|
|
|
|
2017-04-18 19:49:48 -04:00
|
|
|
class A:
|
|
|
|
def foo(self):
|
2021-03-15 09:57:36 -04:00
|
|
|
print("A foo")
|
2017-04-18 19:49:48 -04:00
|
|
|
return 42
|
2021-03-15 09:57:36 -04:00
|
|
|
|
|
|
|
|
2017-04-18 19:49:48 -04:00
|
|
|
class B(A):
|
|
|
|
def foo(self):
|
2021-03-15 09:57:36 -04:00
|
|
|
print("B foo")
|
2017-04-18 19:49:48 -04:00
|
|
|
print(super().foo())
|
|
|
|
|
2021-03-15 09:57:36 -04:00
|
|
|
|
2017-04-18 19:49:48 -04:00
|
|
|
b = B()
|
|
|
|
|
|
|
|
micropython.heap_lock()
|
|
|
|
b.foo()
|
|
|
|
micropython.heap_unlock()
|