|
@@ -2536,13 +2536,7 @@ GenerateOneofClear(io::Printer* printer) {
|
|
printer->Print(oneof_vars,
|
|
printer->Print(oneof_vars,
|
|
"void $classname$::clear_$oneofname$() {\n");
|
|
"void $classname$::clear_$oneofname$() {\n");
|
|
printer->Indent();
|
|
printer->Indent();
|
|
- // In .proto.h mode, fields with a dependent type will generate
|
|
|
|
- // clearing code that down casts from the dependent base class.
|
|
|
|
- // However, clear_oneof() methods are always in the .cc file, and thus
|
|
|
|
- // must remain in the derived base. So, to make the clearing code work,
|
|
|
|
- // we add a typedef so that the down cast works (it will be a no-op).
|
|
|
|
printer->Print(oneof_vars,
|
|
printer->Print(oneof_vars,
|
|
- "typedef $classname$ T;\n"
|
|
|
|
"switch($oneofname$_case()) {\n");
|
|
"switch($oneofname$_case()) {\n");
|
|
printer->Indent();
|
|
printer->Indent();
|
|
for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
|
|
for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
|