# Buggy code
def generate_result_code(self, code):
    if self.mkw:
        code.globalstate.use_utility_code(
            UtilityCode.load_cached("Py3MetaclassGet", "ObjectHandling.c")
        )
        call = "__Pyx_Py3MetaclassGet(%s, %s)" % (
            self.bases.result(),
            self.mkw.result(),
        )
    else:
        code.globalstate.use_utility_code(
            UtilityCode.load_cached("CalculateMetaclass", "ObjectHandling.c")
        )
        call = "__Pyx_CalculateMetaclass(NULL, %s)" % (self.bases.result())
    code.putln(
        "%s = %s; %s"
        % (self.result(), call, code.error_goto_if_null(self.result(), self.pos))
    )
    code.put_gotref(self.py_result())


# Traceback (AttributeError)
Compiling testfile.py because it changed.
[1/1] Cythonizing testfile.py
Traceback (most recent call last):
File "setup.py", line 12, in <module>
distutils.core.setup(ext_modules=Cython.Build.cythonize(packpaths, nthreads=buildthreads, compiler_directives={'language_level': 3, 'profile': True}, annotate=True))
File ".../Cython/Build/Dependencies.py", line 1096, in cythonize
cythonize_one(*args)
File ".../Cython/Build/Dependencies.py", line 1202, in cythonize_one
result = compile_single(pyx_file, options, full_module_name=full_module_name)
File ".../Cython/Compiler/Main.py", line 727, in compile_single
return run_pipeline(source, options, full_module_name)
File ".../Cython/Compiler/Main.py", line 515, in run_pipeline
err, enddata = Pipeline.run_pipeline(pipeline, source)
File ".../Cython/Compiler/Pipeline.py", line 355, in run_pipeline
data = run(phase, data)
File ".../Cython/Compiler/Pipeline.py", line 335, in run
return phase(data)
File ".../Cython/Compiler/Pipeline.py", line 52, in generate_pyx_code_stage
module_node.process_implementation(options, result)
File ".../Cython/Compiler/ModuleNode.py", line 143, in process_implementation
self.generate_c_code(env, options, result)
File ".../Cython/Compiler/ModuleNode.py", line 385, in generate_c_code
self.body.generate_function_definitions(env, code)
File ".../Cython/Compiler/Nodes.py", line 442, in generate_function_definitions
stat.generate_function_definitions(env, code)
File ".../Cython/Compiler/Nodes.py", line 442, in generate_function_definitions
stat.generate_function_definitions(env, code)
File ".../Cython/Compiler/Nodes.py", line 3176, in generate_function_definitions
FuncDefNode.generate_function_definitions(self, env, code)
File ".../Cython/Compiler/Nodes.py", line 1983, in generate_function_definitions
self.generate_function_body(env, code)
File ".../Cython/Compiler/Nodes.py", line 1745, in generate_function_body
self.body.generate_execution_code(code)
File ".../Cython/Compiler/Nodes.py", line 448, in generate_execution_code
stat.generate_execution_code(code)
File ".../Cython/Compiler/Nodes.py", line 4601, in generate_execution_code
self.class_result.generate_evaluation_code(code)
File ".../Cython/Compiler/ExprNodes.py", line 773, in generate_evaluation_code
self.generate_result_code(code)
File ".../Cython/Compiler/ExprNodes.py", line 9034, in generate_result_code
self.bases.py_result(),
File ".../Cython/Compiler/ExprNodes.py", line 525, in py_result
return self.result_as(py_object_type)
File ".../Cython/Compiler/ExprNodes.py", line 516, in result_as
if (self.is_temp and self.type.is_pyobject and
AttributeError: 'NoneType' object has no attribute 'is_pyobject'

# Fixed code
def generate_result_code(self, code):
    bases = self.class_def_node.bases
    mkw = self.class_def_node.mkw
    if mkw:
        code.globalstate.use_utility_code(
            UtilityCode.load_cached("Py3MetaclassGet", "ObjectHandling.c")
        )
        call = "__Pyx_Py3MetaclassGet(%s, %s)" % (bases.result(), mkw.result())
    else:
        code.globalstate.use_utility_code(
            UtilityCode.load_cached("CalculateMetaclass", "ObjectHandling.c")
        )
        call = "__Pyx_CalculateMetaclass(NULL, %s)" % (bases.result())
    code.putln(
        "%s = %s; %s"
        % (self.result(), call, code.error_goto_if_null(self.result(), self.pos))
    )
    code.put_gotref(self.py_result())