// This file is GENERATED by mycpp, from Python source code #include "mycpp/runtime.h" namespace test_func_method_name_conflict { // forward declare class MethodDefinedBefore; class MethodDefinedAfter; } namespace test_func_method_name_conflict { // declare int a(); class MethodDefinedBefore { public: MethodDefinedBefore(); int a(); void b(); static constexpr ObjHeader obj_header() { return ObjHeader::ClassScanned(0, sizeof(MethodDefinedBefore)); } DISALLOW_COPY_AND_ASSIGN(MethodDefinedBefore) }; class MethodDefinedAfter { public: MethodDefinedAfter(); void b(); int c(); static constexpr ObjHeader obj_header() { return ObjHeader::ClassScanned(0, sizeof(MethodDefinedAfter)); } DISALLOW_COPY_AND_ASSIGN(MethodDefinedAfter) }; int c(); void run_tests(); void run_benchmarks(); } // declare namespace test_func_method_name_conflict namespace test_func_method_name_conflict { // define int a() { return 1; } MethodDefinedBefore::MethodDefinedBefore() { ; // pass } int MethodDefinedBefore::a() { assert(0); // AssertionError return 1; } void MethodDefinedBefore::b() { test_func_method_name_conflict::a(); } MethodDefinedAfter::MethodDefinedAfter() { ; // pass } void MethodDefinedAfter::b() { test_func_method_name_conflict::c(); } int MethodDefinedAfter::c() { assert(0); // AssertionError return 1; } int c() { return a(); } void run_tests() { test_func_method_name_conflict::MethodDefinedBefore* before = nullptr; test_func_method_name_conflict::MethodDefinedAfter* after = nullptr; before = Alloc(); before->b(); after = Alloc(); after->b(); } void run_benchmarks() { ; // pass } } // define namespace test_func_method_name_conflict