options.language_level = 3
elif option == "--fast-fail":
Options.fast_fail = True
+ elif option == "--disable-function-redefinition":
+ Options.disable_function_redefinition = True
elif option in ("-X", "--directive"):
try:
options.compiler_directives = Options.parse_directive_list(
# executes the body of this module.
embed = False
+# Disables function redefinition, allowing all functions to be declared at
+# module creation time. For legacy code only.
+disable_function_redefinition = False
+
# Declare compiler directives
directive_defaults = {
def declare_pyfunction(self, name, pos, allow_redefine=False, visibility='extern'):
# Add an entry for a Python function.
entry = self.lookup_here(name)
- if not allow_redefine:
+ if not allow_redefine or Options.disable_function_redefinition:
return self._declare_pyfunction(name, pos, visibility=visibility, entry=entry)
if entry:
if entry.type.is_unspecified: