791b65f4b2
Having a micropython.const identity function, and writing "from micropython import const" at the start of scripts that use the const feature, allows to write scripts which are compatible with CPython, and with uPy builds that don't include const optimisation. This patch adds such a function and updates the tests to do the import.
35 lines
623 B
Python
35 lines
623 B
Python
# check that consts are not replaced in anything except standalone identifiers
|
|
|
|
from micropython import const
|
|
|
|
X = const(1)
|
|
Y = const(2)
|
|
Z = const(3)
|
|
|
|
# import that uses a constant
|
|
import micropython as X
|
|
print(globals()['X'])
|
|
|
|
# function name that matches a constant
|
|
def X():
|
|
print('function X', X)
|
|
globals()['X']()
|
|
|
|
# arguments that match a constant
|
|
def f(X, *Y, **Z):
|
|
pass
|
|
f(1)
|
|
|
|
# class name that matches a constant
|
|
class X:
|
|
def f(self):
|
|
print('class X', X)
|
|
globals()['X']().f()
|
|
|
|
# constant within a class
|
|
class A:
|
|
C1 = const(4)
|
|
def X(self):
|
|
print('method X', Y, C1, self.C1)
|
|
A().X()
|