diff --git a/compiler/back_end/cpp/BUILD b/compiler/back_end/cpp/BUILD index 14eac6a..5e23832 100644 --- a/compiler/back_end/cpp/BUILD +++ b/compiler/back_end/cpp/BUILD @@ -388,6 +388,17 @@ emboss_cc_test( ], ) +emboss_cc_test( + name = "many_conditionals_benchmark", + srcs = [ + "testcode/many_conditionals_benchmark.cc", + ], + deps = [ + "//testdata:many_conditionals_emboss", + "@com_google_googletest//:gtest_main", + ], +) + # New golden test infrastructure py_library( name = "one_golden_test_lib", @@ -535,6 +546,7 @@ cpp_golden_test( cpp_golden_test( name = "no_enum_traits_golden_test", emb_file = "//testdata:no_enum_traits.emb", + extra_args = ["--no-cc-enum-traits"], golden_file = "//testdata/golden_cpp:no_enum_traits.emb.h", ) diff --git a/compiler/back_end/cpp/build_defs.bzl b/compiler/back_end/cpp/build_defs.bzl index 78d22f3..1a18716 100644 --- a/compiler/back_end/cpp/build_defs.bzl +++ b/compiler/back_end/cpp/build_defs.bzl @@ -46,7 +46,7 @@ def emboss_cc_test(name, copts = None, no_w_sign_compare = False, **kwargs): **kwargs ) -def cpp_golden_test(name, emb_file, golden_file, import_dirs = []): +def cpp_golden_test(name, emb_file, golden_file, import_dirs = [], extra_args = []): """Defines a C++ golden file test. Args: @@ -54,7 +54,13 @@ def cpp_golden_test(name, emb_file, golden_file, import_dirs = []): emb_file: The .emb file to test. golden_file: The golden .h file. import_dirs: A list of import directories. + extra_args: A list of extra arguments to pass to the compiler. """ + unique_import_dirs = [] + for d in import_dirs: + if d not in unique_import_dirs: + unique_import_dirs.append(d) + py_test( name = name, main = ":run_one_golden_test.py", @@ -65,13 +71,13 @@ def cpp_golden_test(name, emb_file, golden_file, import_dirs = []): "$(location :emboss_codegen_cpp)", "$(location %s)" % emb_file, "$(location %s)" % golden_file, - ] + ["--import-dir=" + d for d in import_dirs], + ] + ["--import-dir=" + d for d in unique_import_dirs] + extra_args, data = [ "//compiler/front_end:emboss_front_end", ":emboss_codegen_cpp", emb_file, golden_file, "//testdata:test_embs", - ] + import_dirs, + ] + unique_import_dirs, deps = [":one_golden_test_lib"], ) diff --git a/compiler/back_end/cpp/generated_code_templates b/compiler/back_end/cpp/generated_code_templates index e8f7c46..5ea3ca5 100644 --- a/compiler/back_end/cpp/generated_code_templates +++ b/compiler/back_end/cpp/generated_code_templates @@ -127,6 +127,7 @@ class Generic${name}View final { bool Ok() const { if (!IsComplete()) return false; ${parameter_ok_checks} +${ok_subexpressions} ${field_ok_checks} ${requires_check} return true; @@ -391,11 +392,14 @@ ${write_fields} // ** ok_method_test ** //////////////////////////////////////////////////////// // If we don't have enough information to determine whether ${field} is // present in the structure, then structure.Ok() should be false. - if (!has_${field}.Known()) return false; - // If ${field} is present, but not Ok(), then structure.Ok() should be - // false. If ${field} is not present, it does not matter whether it is - // Ok(). - if (has_${field}.ValueOrDefault() && !${field}.Ok()) return false; + { + const auto emboss_reserved_local_field_present = ${existence_condition}; + if (!emboss_reserved_local_field_present.Known()) return false; + // If ${field} is present, but not Ok(), then structure.Ok() should be + // false. If ${field} is not present, it does not matter whether it is + // Ok(). + if (emboss_reserved_local_field_present.ValueOrDefault() && !${field}.Ok()) return false; + } // ** equals_method_test ** //////////////////////////////////////////////////// diff --git a/compiler/back_end/cpp/header_generator.py b/compiler/back_end/cpp/header_generator.py index 5860bc8..8e504ad 100644 --- a/compiler/back_end/cpp/header_generator.py +++ b/compiler/back_end/cpp/header_generator.py @@ -791,6 +791,44 @@ def subexprs(self): ] +class _UsageCountingStore(object): + """A mock SubexpressionStore that counts subexpression usage.""" + + def __init__(self): + self.counts = collections.defaultdict(int) + + def add(self, subexpr): + self.counts[subexpr] += 1 + return subexpr + + +class _SmartSubexpressionStore(object): + """A SubexpressionStore that only caches subexpressions used multiple times.""" + + def __init__(self, prefix, counts): + self._prefix = prefix + self._counts = counts + self._subexpr_to_name = {} + self._index_to_subexpr = [] + + def add(self, subexpr): + if self._counts[subexpr] <= 1: + return subexpr + + if subexpr not in self._subexpr_to_name: + self._index_to_subexpr.append(subexpr) + self._subexpr_to_name[subexpr] = self._prefix + str( + len(self._index_to_subexpr) + ) + return self._subexpr_to_name[subexpr] + + def subexprs(self): + return [ + (self._subexpr_to_name[subexpr], subexpr) + for subexpr in self._index_to_subexpr + ] + + _ExpressionResult = collections.namedtuple( "ExpressionResult", ["rendered", "is_constant"] ) @@ -871,7 +909,9 @@ def _render_expression(expression, ir, field_reader=None, subexpressions=None): def _render_existence_test(field, ir, subexpressions=None): - return _render_expression(field.existence_condition, ir, subexpressions) + return _render_expression( + field.existence_condition, ir, subexpressions=subexpressions + ) def _alignment_of_location(location): @@ -1421,6 +1461,16 @@ def _generate_structure_definition(type_ir, ir, config: Config): initialize_parameters_initialized_true = "" parameter_checks = [""] + # Pass 1: Count subexpression usage. + ok_usage_counter = _UsageCountingStore() + for field_index in type_ir.structure.fields_in_dependency_order: + field = type_ir.structure.field[field_index] + _render_existence_test(field, ir, ok_usage_counter) + + # Pass 2: Generate code using smart store. + ok_subexpressions = _SmartSubexpressionStore( + "emboss_reserved_local_ok_subexpr_", ok_usage_counter.counts + ) for field_index in type_ir.structure.fields_in_dependency_order: field = type_ir.structure.field[field_index] helper_types, declaration, definition = _generate_structure_field_methods( @@ -1432,6 +1482,9 @@ def _generate_structure_definition(type_ir, ir, config: Config): code_template.format_template( _TEMPLATES.ok_method_test, field=_cpp_field_name(field.name.name.text) + "()", + existence_condition=_render_existence_test( + field, ir, subexpressions=ok_subexpressions + ).rendered, ) ) if not ir_util.field_is_virtual(field): @@ -1499,6 +1552,12 @@ def _generate_structure_definition(type_ir, ir, config: Config): size_method=_render_size_method(type_ir.structure.field, ir), field_method_declarations="".join(field_method_declarations), field_ok_checks="\n".join(ok_method_clauses), + ok_subexpressions="".join( + [ + " const auto {} = {};\n".format(name, subexpr) + for name, subexpr in ok_subexpressions.subexprs() + ] + ), parameter_ok_checks="\n".join(parameter_checks), requires_check=requires_check, equals_method_body="\n".join(equals_method_clauses), diff --git a/compiler/back_end/cpp/one_golden_test.py b/compiler/back_end/cpp/one_golden_test.py index 196e4a2..6c65491 100644 --- a/compiler/back_end/cpp/one_golden_test.py +++ b/compiler/back_end/cpp/one_golden_test.py @@ -27,6 +27,7 @@ def __init__( emb_file, golden_file, include_dirs=None, + compiler_flags=None, ): super(OneGoldenTest, self).__init__("test_golden_file") self.emboss_front_end = emboss_front_end @@ -34,6 +35,7 @@ def __init__( self.emb_file = emb_file self.golden_file = golden_file self.include_dirs = include_dirs if include_dirs is not None else [] + self.compiler_flags = compiler_flags if compiler_flags is not None else [] def test_golden_file(self): temp_dir = os.environ.get("TEST_TMPDIR", "") @@ -61,6 +63,7 @@ def test_golden_file(self): "--output-file", output_path, ] + compiler_args.extend(self.compiler_flags) process = subprocess.run(compiler_args, capture_output=True, text=True) diff --git a/compiler/back_end/cpp/run_one_golden_test.py b/compiler/back_end/cpp/run_one_golden_test.py index 36f166e..0faa513 100644 --- a/compiler/back_end/cpp/run_one_golden_test.py +++ b/compiler/back_end/cpp/run_one_golden_test.py @@ -34,12 +34,24 @@ def main(argv): emboss_compiler = argv[2] emb_file = argv[3] golden_file = argv[4] - include_dirs = argv[5:] + + include_dirs = [] + compiler_flags = [] + for arg in argv[5:]: + if arg.startswith("--import-dir="): + include_dirs.append(arg[len("--import-dir=") :]) + else: + compiler_flags.append(arg) suite = unittest.TestSuite() suite.addTest( OneGoldenTest( - emboss_front_end, emboss_compiler, emb_file, golden_file, include_dirs + emboss_front_end, + emboss_compiler, + emb_file, + golden_file, + include_dirs, + compiler_flags, ) ) runner = unittest.TextTestRunner() diff --git a/compiler/back_end/cpp/testcode/many_conditionals_benchmark.cc b/compiler/back_end/cpp/testcode/many_conditionals_benchmark.cc new file mode 100644 index 0000000..bc4ab96 --- /dev/null +++ b/compiler/back_end/cpp/testcode/many_conditionals_benchmark.cc @@ -0,0 +1,45 @@ +#include + +#include +#include +#include + +#include "testdata/many_conditionals.emb.h" + +// A simple test that acts as a benchmark/sanity check. +// Since this file is in compiler/back_end/cpp/testcode/, it will be built as a +// cc_test. We can use GoogleTest macros. + +namespace emboss { +namespace test { +namespace { + +TEST(ComplexConditionals, PerformanceBenchmark) { + std::vector buffer(100, 0); + auto view = emboss::test::MakeLargeConditionalsView(&buffer); + + auto start = std::chrono::high_resolution_clock::now(); + int iterations = 10000; + volatile bool result = false; + for (int i = 0; i < iterations; ++i) { + for (int tag = 0; tag < 100; ++tag) { + view.tag().Write(tag); + result = view.Ok(); + } + } + auto end = std::chrono::high_resolution_clock::now(); + + std::chrono::duration elapsed = end - start; + // We don't strictly fail on time, but we print it. + // In a real CI system we might assert upper bounds. + std::cout << "Time for " << iterations + << " iterations (x100 tags): " << elapsed.count() << "s" + << std::endl; + + EXPECT_TRUE(result); + EXPECT_TRUE(view.Ok()); +} + +} // namespace +} // namespace test +} // namespace emboss diff --git a/compiler/util/parser_types.py b/compiler/util/parser_types.py index a3ef34d..89cb186 100644 --- a/compiler/util/parser_types.py +++ b/compiler/util/parser_types.py @@ -15,7 +15,7 @@ """Types related to the LR(1) parser. This module contains types used by the LR(1) parser, which are also used in -other parts of the compiler: +other parts of the compiler: SourcePosition: a position (zero-width) within a source file. SourceLocation: a span within a source file. diff --git a/testdata/BUILD b/testdata/BUILD index 95716da..8498fe5 100644 --- a/testdata/BUILD +++ b/testdata/BUILD @@ -36,11 +36,8 @@ filegroup( ], ) - - exports_files(glob(["**/*.emb"])) - filegroup( name = "test_embs", srcs = [ @@ -369,3 +366,10 @@ emboss_cc_library( "complex_offset.emb", ], ) + +emboss_cc_library( + name = "many_conditionals_emboss", + srcs = [ + "many_conditionals.emb", + ], +) diff --git a/testdata/golden_cpp/alignments.emb.h b/testdata/golden_cpp/alignments.emb.h index e60daf5..f225198 100644 --- a/testdata/golden_cpp/alignments.emb.h +++ b/testdata/golden_cpp/alignments.emb.h @@ -116,60 +116,103 @@ class GenericAlignmentsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_zero_offset().Known()) return false; - if (has_zero_offset().ValueOrDefault() && !zero_offset().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !zero_offset().Ok()) return false; + } - if (!has_zero_offset_substructure().Known()) return false; - if (has_zero_offset_substructure().ValueOrDefault() && !zero_offset_substructure().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !zero_offset_substructure().Ok()) return false; + } - if (!has_two_offset_substructure().Known()) return false; - if (has_two_offset_substructure().ValueOrDefault() && !two_offset_substructure().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_offset_substructure().Ok()) return false; + } - if (!has_three_offset().Known()) return false; - if (has_three_offset().ValueOrDefault() && !three_offset().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_offset().Ok()) return false; + } - if (!has_four_offset().Known()) return false; - if (has_four_offset().ValueOrDefault() && !four_offset().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_offset().Ok()) return false; + } - if (!has_eleven_offset().Known()) return false; - if (has_eleven_offset().ValueOrDefault() && !eleven_offset().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !eleven_offset().Ok()) return false; + } - if (!has_twelve_offset().Known()) return false; - if (has_twelve_offset().ValueOrDefault() && !twelve_offset().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !twelve_offset().Ok()) return false; + } - if (!has_zero_offset_four_stride_array().Known()) return false; - if (has_zero_offset_four_stride_array().ValueOrDefault() && !zero_offset_four_stride_array().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !zero_offset_four_stride_array().Ok()) return false; + } - if (!has_zero_offset_six_stride_array().Known()) return false; - if (has_zero_offset_six_stride_array().ValueOrDefault() && !zero_offset_six_stride_array().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !zero_offset_six_stride_array().Ok()) return false; + } - if (!has_three_offset_four_stride_array().Known()) return false; - if (has_three_offset_four_stride_array().ValueOrDefault() && !three_offset_four_stride_array().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_offset_four_stride_array().Ok()) return false; + } - if (!has_four_offset_six_stride_array().Known()) return false; - if (has_four_offset_six_stride_array().ValueOrDefault() && !four_offset_six_stride_array().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_offset_six_stride_array().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1338,20 +1381,33 @@ class GenericPlaceholder4View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_dummy().Known()) return false; - if (has_dummy().ValueOrDefault() && !dummy().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !dummy().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1757,24 +1813,40 @@ class GenericPlaceholder6View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_zero_offset().Known()) return false; - if (has_zero_offset().ValueOrDefault() && !zero_offset().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !zero_offset().Ok()) return false; + } - if (!has_two_offset().Known()) return false; - if (has_two_offset().ValueOrDefault() && !two_offset().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_offset().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/anonymous_bits.emb.h b/testdata/golden_cpp/anonymous_bits.emb.h index 7d505c9..42b1aac 100644 --- a/testdata/golden_cpp/anonymous_bits.emb.h +++ b/testdata/golden_cpp/anonymous_bits.emb.h @@ -122,28 +122,47 @@ class GenericEmbossReservedAnonymousField2View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_high_bit().Known()) return false; - if (has_high_bit().ValueOrDefault() && !high_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !high_bit().Ok()) return false; + } - if (!has_bar().Known()) return false; - if (has_bar().ValueOrDefault() && !bar().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !bar().Ok()) return false; + } - if (!has_first_bit().Known()) return false; - if (has_first_bit().ValueOrDefault() && !first_bit().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !first_bit().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -793,24 +812,40 @@ class GenericEmbossReservedAnonymousField1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_bit_23().Known()) return false; - if (has_bit_23().ValueOrDefault() && !bit_23().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !bit_23().Ok()) return false; + } - if (!has_low_bit().Known()) return false; - if (has_low_bit().ValueOrDefault() && !low_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !low_bit().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -1288,44 +1323,76 @@ class GenericFooView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_emboss_reserved_anonymous_field_2().Known()) return false; - if (has_emboss_reserved_anonymous_field_2().ValueOrDefault() && !emboss_reserved_anonymous_field_2().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_2().Ok()) return false; + } - if (!has_high_bit().Known()) return false; - if (has_high_bit().ValueOrDefault() && !high_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !high_bit().Ok()) return false; + } - if (!has_bar().Known()) return false; - if (has_bar().ValueOrDefault() && !bar().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !bar().Ok()) return false; + } - if (!has_first_bit().Known()) return false; - if (has_first_bit().ValueOrDefault() && !first_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !first_bit().Ok()) return false; + } - if (!has_emboss_reserved_anonymous_field_1().Known()) return false; - if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + } - if (!has_bit_23().Known()) return false; - if (has_bit_23().ValueOrDefault() && !bit_23().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !bit_23().Ok()) return false; + } - if (!has_low_bit().Known()) return false; - if (has_low_bit().ValueOrDefault() && !low_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !low_bit().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/auto_array_size.emb.h b/testdata/golden_cpp/auto_array_size.emb.h index 64e2973..66e01f0 100644 --- a/testdata/golden_cpp/auto_array_size.emb.h +++ b/testdata/golden_cpp/auto_array_size.emb.h @@ -99,24 +99,40 @@ class GenericElementView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -602,36 +618,61 @@ class GenericAutoSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_array_size().Known()) return false; - if (has_array_size().ValueOrDefault() && !array_size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !array_size().Ok()) return false; + } - if (!has_four_byte_array().Known()) return false; - if (has_four_byte_array().ValueOrDefault() && !four_byte_array().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte_array().Ok()) return false; + } - if (!has_four_struct_array().Known()) return false; - if (has_four_struct_array().ValueOrDefault() && !four_struct_array().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_struct_array().Ok()) return false; + } - if (!has_dynamic_byte_array().Known()) return false; - if (has_dynamic_byte_array().ValueOrDefault() && !dynamic_byte_array().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !dynamic_byte_array().Ok()) return false; + } - if (!has_dynamic_struct_array().Known()) return false; - if (has_dynamic_struct_array().ValueOrDefault() && !dynamic_struct_array().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !dynamic_struct_array().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/bcd.emb.h b/testdata/golden_cpp/bcd.emb.h index 1e4edc2..c10e884 100644 --- a/testdata/golden_cpp/bcd.emb.h +++ b/testdata/golden_cpp/bcd.emb.h @@ -125,32 +125,54 @@ class GenericEmbossReservedAnonymousField1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_four_bit().Known()) return false; - if (has_four_bit().ValueOrDefault() && !four_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_bit().Ok()) return false; + } - if (!has_six_bit().Known()) return false; - if (has_six_bit().ValueOrDefault() && !six_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_bit().Ok()) return false; + } - if (!has_ten_bit().Known()) return false; - if (has_ten_bit().ValueOrDefault() && !ten_bit().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten_bit().Ok()) return false; + } - if (!has_twelve_bit().Known()) return false; - if (has_twelve_bit().ValueOrDefault() && !twelve_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !twelve_bit().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -782,68 +804,118 @@ class GenericBcdSizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_three_byte().Known()) return false; - if (has_three_byte().ValueOrDefault() && !three_byte().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_byte().Ok()) return false; + } - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_five_byte().Known()) return false; - if (has_five_byte().ValueOrDefault() && !five_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !five_byte().Ok()) return false; + } - if (!has_six_byte().Known()) return false; - if (has_six_byte().ValueOrDefault() && !six_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_byte().Ok()) return false; + } - if (!has_seven_byte().Known()) return false; - if (has_seven_byte().ValueOrDefault() && !seven_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !seven_byte().Ok()) return false; + } - if (!has_eight_byte().Known()) return false; - if (has_eight_byte().ValueOrDefault() && !eight_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !eight_byte().Ok()) return false; + } - if (!has_emboss_reserved_anonymous_field_1().Known()) return false; - if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + } - if (!has_four_bit().Known()) return false; - if (has_four_bit().ValueOrDefault() && !four_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_bit().Ok()) return false; + } - if (!has_six_bit().Known()) return false; - if (has_six_bit().ValueOrDefault() && !six_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_bit().Ok()) return false; + } - if (!has_ten_bit().Known()) return false; - if (has_ten_bit().ValueOrDefault() && !ten_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten_bit().Ok()) return false; + } - if (!has_twelve_bit().Known()) return false; - if (has_twelve_bit().ValueOrDefault() && !twelve_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !twelve_bit().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2004,20 +2076,33 @@ class GenericBcdBigEndianView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/bits.emb.h b/testdata/golden_cpp/bits.emb.h index e6f29da..1509726 100644 --- a/testdata/golden_cpp/bits.emb.h +++ b/testdata/golden_cpp/bits.emb.h @@ -142,36 +142,61 @@ class GenericOneByteView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_high_bit().Known()) return false; - if (has_high_bit().ValueOrDefault() && !high_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !high_bit().Ok()) return false; + } - if (!has_less_high_bit().Known()) return false; - if (has_less_high_bit().ValueOrDefault() && !less_high_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !less_high_bit().Ok()) return false; + } - if (!has_mid_nibble().Known()) return false; - if (has_mid_nibble().ValueOrDefault() && !mid_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !mid_nibble().Ok()) return false; + } - if (!has_less_low_bit().Known()) return false; - if (has_less_low_bit().ValueOrDefault() && !less_low_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !less_low_bit().Ok()) return false; + } - if (!has_low_bit().Known()) return false; - if (has_low_bit().ValueOrDefault() && !low_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !low_bit().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -907,28 +932,47 @@ class GenericTwoByteWithGapsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_high_bit().Known()) return false; - if (has_high_bit().ValueOrDefault() && !high_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !high_bit().Ok()) return false; + } - if (!has_mid_nibble().Known()) return false; - if (has_mid_nibble().ValueOrDefault() && !mid_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !mid_nibble().Ok()) return false; + } - if (!has_low_bit().Known()) return false; - if (has_low_bit().ValueOrDefault() && !low_bit().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !low_bit().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -1483,36 +1527,61 @@ class GenericFourByteView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_high_nibble().Known()) return false; - if (has_high_nibble().ValueOrDefault() && !high_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !high_nibble().Ok()) return false; + } - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_raw_low_nibble().Known()) return false; - if (has_raw_low_nibble().ValueOrDefault() && !raw_low_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !raw_low_nibble().Ok()) return false; + } - if (!has_low_nibble().Known()) return false; - if (has_low_nibble().ValueOrDefault() && !low_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !low_nibble().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -2274,24 +2343,40 @@ class GenericArrayInBitsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_lone_flag().Known()) return false; - if (has_lone_flag().ValueOrDefault() && !lone_flag().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !lone_flag().Ok()) return false; + } - if (!has_flags().Known()) return false; - if (has_flags().ValueOrDefault() && !flags().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !flags().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -2777,20 +2862,33 @@ class GenericArrayInBitsInStructView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_array_in_bits().Known()) return false; - if (has_array_in_bits().ValueOrDefault() && !array_in_bits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !array_in_bits().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -3196,32 +3294,54 @@ class GenericStructOfBitsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_located_byte().Known()) return false; - if (has_located_byte().ValueOrDefault() && !located_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !located_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -3881,20 +4001,33 @@ class GenericBitArrayView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/complex_offset.emb.h b/testdata/golden_cpp/complex_offset.emb.h index 31889b0..e478bf3 100644 --- a/testdata/golden_cpp/complex_offset.emb.h +++ b/testdata/golden_cpp/complex_offset.emb.h @@ -106,20 +106,33 @@ class GenericLengthView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_length().Known()) return false; - if (has_length().ValueOrDefault() && !length().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !length().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -525,24 +538,40 @@ class GenericDataView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_length().Known()) return false; - if (has_length().ValueOrDefault() && !length().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !length().Ok()) return false; + } - if (!has_data().Known()) return false; - if (has_data().ValueOrDefault() && !data().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !data().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1072,84 +1101,145 @@ class GenericPackedFieldsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_length1().Known()) return false; - if (has_length1().ValueOrDefault() && !length1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !length1().Ok()) return false; + } - if (!has_data1().Known()) return false; - if (has_data1().ValueOrDefault() && !data1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !data1().Ok()) return false; + } - if (!has_o1().Known()) return false; - if (has_o1().ValueOrDefault() && !o1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !o1().Ok()) return false; + } - if (!has_length2().Known()) return false; - if (has_length2().ValueOrDefault() && !length2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !length2().Ok()) return false; + } - if (!has_data2().Known()) return false; - if (has_data2().ValueOrDefault() && !data2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !data2().Ok()) return false; + } - if (!has_o2().Known()) return false; - if (has_o2().ValueOrDefault() && !o2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !o2().Ok()) return false; + } - if (!has_length3().Known()) return false; - if (has_length3().ValueOrDefault() && !length3().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !length3().Ok()) return false; + } - if (!has_data3().Known()) return false; - if (has_data3().ValueOrDefault() && !data3().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !data3().Ok()) return false; + } - if (!has_o3().Known()) return false; - if (has_o3().ValueOrDefault() && !o3().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !o3().Ok()) return false; + } - if (!has_length4().Known()) return false; - if (has_length4().ValueOrDefault() && !length4().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !length4().Ok()) return false; + } - if (!has_data4().Known()) return false; - if (has_data4().ValueOrDefault() && !data4().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !data4().Ok()) return false; + } - if (!has_o4().Known()) return false; - if (has_o4().ValueOrDefault() && !o4().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !o4().Ok()) return false; + } - if (!has_length5().Known()) return false; - if (has_length5().ValueOrDefault() && !length5().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !length5().Ok()) return false; + } - if (!has_data5().Known()) return false; - if (has_data5().ValueOrDefault() && !data5().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !data5().Ok()) return false; + } - if (!has_o5().Known()) return false; - if (has_o5().ValueOrDefault() && !o5().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !o5().Ok()) return false; + } - if (!has_length6().Known()) return false; - if (has_length6().ValueOrDefault() && !length6().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !length6().Ok()) return false; + } - if (!has_data6().Known()) return false; - if (has_data6().ValueOrDefault() && !data6().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !data6().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/complex_structure.emb.h b/testdata/golden_cpp/complex_structure.emb.h index 745976a..2ea9495 100644 --- a/testdata/golden_cpp/complex_structure.emb.h +++ b/testdata/golden_cpp/complex_structure.emb.h @@ -115,28 +115,47 @@ class GenericRegisterLayoutView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_l().Known()) return false; - if (has_l().ValueOrDefault() && !l().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !l().Ok()) return false; + } - if (!has_h().Known()) return false; - if (has_h().ValueOrDefault() && !h().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !h().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -695,20 +714,33 @@ class GenericArrayElementView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1134,32 +1166,54 @@ class GenericEmbossReservedAnonymousField1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a0().Known()) return false; - if (has_a0().ValueOrDefault() && !a0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a0().Ok()) return false; + } - if (!has_s0().Known()) return false; - if (has_s0().ValueOrDefault() && !s0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !s0().Ok()) return false; + } - if (!has_l0().Known()) return false; - if (has_l0().ValueOrDefault() && !l0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !l0().Ok()) return false; + } - if (!has_h0().Known()) return false; - if (has_h0().ValueOrDefault() && !h0().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !h0().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -1791,84 +1845,149 @@ class GenericComplexView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_s().Known()) return false; - if (has_s().ValueOrDefault() && !s().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + const auto emboss_reserved_local_ok_subexpr_2 = a0(); + const auto emboss_reserved_local_ok_subexpr_3 = b2(); + const auto emboss_reserved_local_ok_subexpr_4 = s(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !s().Ok()) return false; + } - if (!has_u().Known()) return false; - if (has_u().ValueOrDefault() && !u().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !u().Ok()) return false; + } - if (!has_i().Known()) return false; - if (has_i().ValueOrDefault() && !i().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !i().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_emboss_reserved_anonymous_field_1().Known()) return false; - if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + } - if (!has_a0().Known()) return false; - if (has_a0().ValueOrDefault() && !a0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a0().Ok()) return false; + } - if (!has_s0().Known()) return false; - if (has_s0().ValueOrDefault() && !s0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !s0().Ok()) return false; + } - if (!has_l0().Known()) return false; - if (has_l0().ValueOrDefault() && !l0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !l0().Ok()) return false; + } - if (!has_h0().Known()) return false; - if (has_h0().ValueOrDefault() && !h0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !h0().Ok()) return false; + } - if (!has_e1().Known()) return false; - if (has_e1().ValueOrDefault() && !e1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !e1().Ok()) return false; + } - if (!has_e2().Known()) return false; - if (has_e2().ValueOrDefault() && !e2().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThanOrEqual((emboss_reserved_local_ok_subexpr_2.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_2.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(128LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !e2().Ok()) return false; + } - if (!has_b2().Known()) return false; - if (has_b2().ValueOrDefault() && !b2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::LessThan((emboss_reserved_local_ok_subexpr_2.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_2.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(128LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b2().Ok()) return false; + } - if (!has_e3().Known()) return false; - if (has_e3().ValueOrDefault() && !e3().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((emboss_reserved_local_ok_subexpr_3.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_3.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(25LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !e3().Ok()) return false; + } - if (!has_e4().Known()) return false; - if (has_e4().ValueOrDefault() && !e4().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::GreaterThanOrEqual((emboss_reserved_local_ok_subexpr_4.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_4.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(4LL))), ::emboss::support::Choice(::emboss::support::GreaterThanOrEqual((emboss_reserved_local_ok_subexpr_2.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_2.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(80LL))), ::emboss::support::GreaterThanOrEqual((e3().Ok() ? ::emboss::support::Maybe(static_cast(e3().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(128LL))), ::emboss::support::LessThan((emboss_reserved_local_ok_subexpr_3.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_3.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(50LL))))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !e4().Ok()) return false; + } - if (!has_e5().Known()) return false; - if (has_e5().ValueOrDefault() && !e5().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::GreaterThanOrEqual((emboss_reserved_local_ok_subexpr_4.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_4.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL))), ::emboss::support::GreaterThan((e4().Ok() ? ::emboss::support::Maybe(static_cast(e4().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL)))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !e5().Ok()) return false; + } - if (!has_e0().Known()) return false; - if (has_e0().ValueOrDefault() && !e0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Or(::emboss::support::LessThan((emboss_reserved_local_ok_subexpr_4.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_4.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(2LL))), ::emboss::support::LessThan((emboss_reserved_local_ok_subexpr_2.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_2.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(4LL)))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !e0().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/condition.emb.h b/testdata/golden_cpp/condition.emb.h index 9d11fb7..1ba3f50 100644 --- a/testdata/golden_cpp/condition.emb.h +++ b/testdata/golden_cpp/condition.emb.h @@ -360,24 +360,40 @@ class GenericBasicConditionalView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -890,24 +906,40 @@ class GenericNegativeConditionalView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::NotEqual((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1421,28 +1453,47 @@ class GenericConditionalAndUnconditionalOverlappingFinalFieldView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_z().Known()) return false; - if (has_z().ValueOrDefault() && !z().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !z().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2002,24 +2053,40 @@ class GenericConditionalBasicConditionalFieldFirstView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2503,28 +2570,47 @@ class GenericConditionalAndDynamicLocationView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -3117,24 +3203,40 @@ class GenericConditionUsesMinIntView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal(::emboss::support::Difference((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(9223372036854775680LL))), ::emboss::support::Maybe(static_cast(-9223372036854775807LL - 1))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -3649,28 +3751,47 @@ class GenericNestedConditionalView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_xcc().Known()) return false; - if (has_xcc().ValueOrDefault() && !xcc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((xc().Ok() ? ::emboss::support::Maybe(static_cast(xc().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xcc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -4265,28 +4386,48 @@ class GenericCorrectNestedConditionalView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = x(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_xcc().Known()) return false; - if (has_xcc().ValueOrDefault() && !xcc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))), ::emboss::support::Equal((xc().Ok() ? ::emboss::support::Maybe(static_cast(xc().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL)))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xcc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -4881,24 +5022,40 @@ class GenericAlwaysFalseConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(false); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5380,20 +5537,33 @@ class GenericOnlyAlwaysFalseConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(false); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5797,16 +5967,26 @@ class GenericEmptyStructView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -6140,28 +6320,47 @@ class GenericAlwaysFalseConditionDynamicSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(false); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -6752,28 +6951,47 @@ class GenericConditionDoesNotContributeToSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -7421,28 +7639,48 @@ class GenericEnumConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = x(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_xc2().Known()) return false; - if (has_xc2().ValueOrDefault() && !xc2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc2().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -8035,24 +8273,40 @@ class GenericNegativeEnumConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::NotEqual((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -8566,24 +8820,40 @@ class GenericLessThanConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::LessThan((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -9096,24 +9366,40 @@ class GenericLessThanOrEqualConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::LessThanOrEqual((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -9626,24 +9912,40 @@ class GenericGreaterThanOrEqualConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThanOrEqual((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -10156,24 +10458,40 @@ class GenericGreaterThanConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -10687,28 +11005,49 @@ class GenericRangeConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = x(); + const auto emboss_reserved_local_ok_subexpr_2 = y(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::And(::emboss::support::LessThan(::emboss::support::Maybe(static_cast(5LL)), (emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe())), ::emboss::support::LessThanOrEqual((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), (emboss_reserved_local_ok_subexpr_2.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_2.UncheckedRead())) : ::emboss::support::Maybe()))), ::emboss::support::LessThan((emboss_reserved_local_ok_subexpr_2.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_2.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(10LL)))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -11305,28 +11644,49 @@ class GenericReverseRangeConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = y(); + const auto emboss_reserved_local_ok_subexpr_2 = x(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::And(::emboss::support::GreaterThan(::emboss::support::Maybe(static_cast(10LL)), (emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe())), ::emboss::support::GreaterThanOrEqual((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), (emboss_reserved_local_ok_subexpr_2.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_2.UncheckedRead())) : ::emboss::support::Maybe()))), ::emboss::support::GreaterThan((emboss_reserved_local_ok_subexpr_2.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_2.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL)))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -11923,28 +12283,47 @@ class GenericAndConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL))), ::emboss::support::Equal((y().Ok() ? ::emboss::support::Maybe(static_cast(y().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL)))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -12539,28 +12918,47 @@ class GenericOrConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Or(::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL))), ::emboss::support::Equal((y().Ok() ? ::emboss::support::Maybe(static_cast(y().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(5LL)))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -13243,32 +13641,54 @@ class GenericChoiceConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_field().Known()) return false; - if (has_field().ValueOrDefault() && !field().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !field().Ok()) return false; + } - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_xyc().Known()) return false; - if (has_xyc().ValueOrDefault() && !xyc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal(::emboss::support::Choice(::emboss::support::Equal((field().Ok() ? ::emboss::support::Maybe(static_cast(field().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1))), (x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), (y().Ok() ? ::emboss::support::Maybe(static_cast(y().UncheckedRead())) : ::emboss::support::Maybe())), ::emboss::support::Maybe(static_cast(5LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xyc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -13948,24 +14368,40 @@ class GenericEmbossReservedAnonymousField3View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_has_top().Known()) return false; - if (has_has_top().ValueOrDefault() && !has_top().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !has_top().Ok()) return false; + } - if (!has_has_bottom().Known()) return false; - if (has_has_bottom().ValueOrDefault() && !has_bottom().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !has_bottom().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -14443,28 +14879,48 @@ class GenericContainsBitsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_emboss_reserved_anonymous_field_3().Known()) return false; - if (has_emboss_reserved_anonymous_field_3().ValueOrDefault() && !emboss_reserved_anonymous_field_3().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_3().Ok()) return false; + } - if (!has_has_top().Known()) return false; - if (has_has_top().ValueOrDefault() && !has_top().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !has_top().Ok()) return false; + } - if (!has_has_bottom().Known()) return false; - if (has_has_bottom().ValueOrDefault() && !has_bottom().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !has_bottom().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -14920,24 +15376,40 @@ class GenericContainsContainsBitsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_condition().Known()) return false; - if (has_condition().ValueOrDefault() && !condition().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !condition().Ok()) return false; + } - if (!has_top().Known()) return false; - if (has_top().ValueOrDefault() && !top().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((condition().has_top().Ok() ? ::emboss::support::Maybe(static_cast(condition().has_top().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !top().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -15455,28 +15927,47 @@ class GenericType0View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -16038,28 +16529,47 @@ class GenericType1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -16614,28 +17124,48 @@ class GenericConditionalInlineView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_payload_id().Known()) return false; - if (has_payload_id().ValueOrDefault() && !payload_id().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = payload_id(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !payload_id().Ok()) return false; + } - if (!has_type_0().Known()) return false; - if (has_type_0().ValueOrDefault() && !type_0().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !type_0().Ok()) return false; + } - if (!has_type_1().Known()) return false; - if (has_type_1().ValueOrDefault() && !type_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !type_1().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -17232,28 +17762,47 @@ class GenericEmbossReservedAnonymousField2View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_low().Known()) return false; - if (has_low().ValueOrDefault() && !low().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !low().Ok()) return false; + } - if (!has_mid().Known()) return false; - if (has_mid().ValueOrDefault() && !mid().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((low().Ok() ? ::emboss::support::Maybe(static_cast(low().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !mid().Ok()) return false; + } - if (!has_high().Known()) return false; - if (has_high().ValueOrDefault() && !high().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !high().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -17808,36 +18357,62 @@ class GenericConditionalAnonymousView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = has_emboss_reserved_anonymous_field_2(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_emboss_reserved_anonymous_field_2().Known()) return false; - if (has_emboss_reserved_anonymous_field_2().ValueOrDefault() && !emboss_reserved_anonymous_field_2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(10LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_2().Ok()) return false; + } - if (!has_low().Known()) return false; - if (has_low().ValueOrDefault() && !low().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(emboss_reserved_local_ok_subexpr_1, ::emboss::support::Maybe(true)); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !low().Ok()) return false; + } - if (!has_mid().Known()) return false; - if (has_mid().ValueOrDefault() && !mid().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(emboss_reserved_local_ok_subexpr_1, emboss_reserved_anonymous_field_2().has_mid()); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !mid().Ok()) return false; + } - if (!has_high().Known()) return false; - if (has_high().ValueOrDefault() && !high().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(emboss_reserved_local_ok_subexpr_1, ::emboss::support::Maybe(true)); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !high().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -18450,20 +19025,33 @@ class GenericEmbossReservedAnonymousField1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_enabled().Known()) return false; - if (has_enabled().ValueOrDefault() && !enabled().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !enabled().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -18864,28 +19452,47 @@ class GenericConditionalOnFlagView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_emboss_reserved_anonymous_field_1().Known()) return false; - if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + } - if (!has_enabled().Known()) return false; - if (has_enabled().ValueOrDefault() && !enabled().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !enabled().Ok()) return false; + } - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + { + const auto emboss_reserved_local_field_present = (enabled().Ok() ? ::emboss::support::Maybe(static_cast(enabled().UncheckedRead())) : ::emboss::support::Maybe()); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/dynamic_size.emb.h b/testdata/golden_cpp/dynamic_size.emb.h index 8c5f5b5..cfbe3b7 100644 --- a/testdata/golden_cpp/dynamic_size.emb.h +++ b/testdata/golden_cpp/dynamic_size.emb.h @@ -174,36 +174,61 @@ class GenericMessageView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_header_length().Known()) return false; - if (has_header_length().ValueOrDefault() && !header_length().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !header_length().Ok()) return false; + } - if (!has_message_length().Known()) return false; - if (has_message_length().ValueOrDefault() && !message_length().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !message_length().Ok()) return false; + } - if (!has_padding().Known()) return false; - if (has_padding().ValueOrDefault() && !padding().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !padding().Ok()) return false; + } - if (!has_message().Known()) return false; - if (has_message().ValueOrDefault() && !message().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !message().Ok()) return false; + } - if (!has_crc32().Known()) return false; - if (has_crc32().ValueOrDefault() && !crc32().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !crc32().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -962,24 +987,40 @@ class GenericImageView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_size().Known()) return false; - if (has_size().ValueOrDefault() && !size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !size().Ok()) return false; + } - if (!has_pixels().Known()) return false; - if (has_pixels().ValueOrDefault() && !pixels().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !pixels().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1509,40 +1550,68 @@ class GenericTwoRegionsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_b_end().Known()) return false; - if (has_b_end().ValueOrDefault() && !b_end().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b_end().Ok()) return false; + } - if (!has_b_start().Known()) return false; - if (has_b_start().ValueOrDefault() && !b_start().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b_start().Ok()) return false; + } - if (!has_a_size().Known()) return false; - if (has_a_size().ValueOrDefault() && !a_size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_size().Ok()) return false; + } - if (!has_a_start().Known()) return false; - if (has_a_start().ValueOrDefault() && !a_start().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_start().Ok()) return false; + } - if (!has_region_a().Known()) return false; - if (has_region_a().ValueOrDefault() && !region_a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !region_a().Ok()) return false; + } - if (!has_region_b().Known()) return false; - if (has_region_b().ValueOrDefault() && !region_b().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !region_b().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2381,28 +2450,47 @@ class GenericMultipliedSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_width().Known()) return false; - if (has_width().ValueOrDefault() && !width().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !width().Ok()) return false; + } - if (!has_height().Known()) return false; - if (has_height().ValueOrDefault() && !height().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !height().Ok()) return false; + } - if (!has_data().Known()) return false; - if (has_data().ValueOrDefault() && !data().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !data().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -3006,52 +3094,89 @@ class GenericNegativeTermsInSizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_a_minus_b().Known()) return false; - if (has_a_minus_b().ValueOrDefault() && !a_minus_b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_minus_b().Ok()) return false; + } - if (!has_a_minus_2b().Known()) return false; - if (has_a_minus_2b().ValueOrDefault() && !a_minus_2b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_minus_2b().Ok()) return false; + } - if (!has_a_minus_b_minus_c().Known()) return false; - if (has_a_minus_b_minus_c().ValueOrDefault() && !a_minus_b_minus_c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_minus_b_minus_c().Ok()) return false; + } - if (!has_ten_minus_a().Known()) return false; - if (has_ten_minus_a().ValueOrDefault() && !ten_minus_a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten_minus_a().Ok()) return false; + } - if (!has_a_minus_2c().Known()) return false; - if (has_a_minus_2c().ValueOrDefault() && !a_minus_2c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_minus_2c().Ok()) return false; + } - if (!has_a_minus_c().Known()) return false; - if (has_a_minus_c().ValueOrDefault() && !a_minus_c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_minus_c().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -4154,24 +4279,40 @@ class GenericNegativeTermInLocationView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -4687,32 +4828,54 @@ class GenericChainedSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_d().Known()) return false; - if (has_d().ValueOrDefault() && !d().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !d().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5388,28 +5551,47 @@ class GenericFinalFieldOverlapsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5971,32 +6153,54 @@ class GenericDynamicFinalFieldOverlapsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_d().Known()) return false; - if (has_d().ValueOrDefault() && !d().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !d().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -6666,24 +6870,40 @@ class GenericDynamicFieldDependsOnLaterFieldView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -7198,28 +7418,47 @@ class GenericDynamicFieldDoesNotAffectSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/enum.emb.h b/testdata/golden_cpp/enum.emb.h index f056862..1d03fb6 100644 --- a/testdata/golden_cpp/enum.emb.h +++ b/testdata/golden_cpp/enum.emb.h @@ -139,24 +139,40 @@ class GenericConstantsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_sprocket().Known()) return false; - if (has_sprocket().ValueOrDefault() && !sprocket().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !sprocket().Ok()) return false; + } - if (!has_geegaw().Known()) return false; - if (has_geegaw().ValueOrDefault() && !geegaw().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !geegaw().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1546,20 +1562,33 @@ class GenericEmbossReservedAnonymousField1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_wide_kind_in_bits().Known()) return false; - if (has_wide_kind_in_bits().ValueOrDefault() && !wide_kind_in_bits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !wide_kind_in_bits().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -1961,36 +1990,61 @@ class GenericManifestEntryView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_kind().Known()) return false; - if (has_kind().ValueOrDefault() && !kind().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !kind().Ok()) return false; + } - if (!has_count().Known()) return false; - if (has_count().ValueOrDefault() && !count().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !count().Ok()) return false; + } - if (!has_wide_kind().Known()) return false; - if (has_wide_kind().ValueOrDefault() && !wide_kind().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !wide_kind().Ok()) return false; + } - if (!has_emboss_reserved_anonymous_field_1().Known()) return false; - if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + } - if (!has_wide_kind_in_bits().Known()) return false; - if (has_wide_kind_in_bits().ValueOrDefault() && !wide_kind_in_bits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !wide_kind_in_bits().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2720,20 +2774,33 @@ class GenericStructContainingEnumView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_bar().Known()) return false; - if (has_bar().ValueOrDefault() && !bar().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !bar().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/enum_case.emb.h b/testdata/golden_cpp/enum_case.emb.h index 5738596..4d6c432 100644 --- a/testdata/golden_cpp/enum_case.emb.h +++ b/testdata/golden_cpp/enum_case.emb.h @@ -334,28 +334,47 @@ class GenericUseKCamelEnumCaseView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_v().Known()) return false; - if (has_v().ValueOrDefault() && !v().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !v().Ok()) return false; + } - if (!has_first().Known()) return false; - if (has_first().ValueOrDefault() && !first().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !first().Ok()) return false; + } - if (!has_v_is_first().Known()) return false; - if (has_v_is_first().ValueOrDefault() && !v_is_first().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !v_is_first().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/explicit_sizes.emb.h b/testdata/golden_cpp/explicit_sizes.emb.h index f8fd46f..8005e47 100644 --- a/testdata/golden_cpp/explicit_sizes.emb.h +++ b/testdata/golden_cpp/explicit_sizes.emb.h @@ -118,28 +118,47 @@ class GenericSizedUIntArraysView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_nibble().Known()) return false; - if (has_one_nibble().ValueOrDefault() && !one_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_nibble().Ok()) return false; + } - if (!has_two_nibble().Known()) return false; - if (has_two_nibble().ValueOrDefault() && !two_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_nibble().Ok()) return false; + } - if (!has_four_nibble().Known()) return false; - if (has_four_nibble().ValueOrDefault() && !four_nibble().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_nibble().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -712,28 +731,47 @@ class GenericSizedIntArraysView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_nibble().Known()) return false; - if (has_one_nibble().ValueOrDefault() && !one_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_nibble().Ok()) return false; + } - if (!has_two_nibble().Known()) return false; - if (has_two_nibble().ValueOrDefault() && !two_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_nibble().Ok()) return false; + } - if (!has_four_nibble().Known()) return false; - if (has_four_nibble().ValueOrDefault() && !four_nibble().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_nibble().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -1306,28 +1344,47 @@ class GenericSizedEnumArraysView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_nibble().Known()) return false; - if (has_one_nibble().ValueOrDefault() && !one_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_nibble().Ok()) return false; + } - if (!has_two_nibble().Known()) return false; - if (has_two_nibble().ValueOrDefault() && !two_nibble().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_nibble().Ok()) return false; + } - if (!has_four_nibble().Known()) return false; - if (has_four_nibble().ValueOrDefault() && !four_nibble().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_nibble().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -1901,20 +1958,33 @@ class GenericBitArrayContainerView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_uint_arrays().Known()) return false; - if (has_uint_arrays().ValueOrDefault() && !uint_arrays().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !uint_arrays().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/float.emb.h b/testdata/golden_cpp/float.emb.h index d43d32e..c54aa66 100644 --- a/testdata/golden_cpp/float.emb.h +++ b/testdata/golden_cpp/float.emb.h @@ -99,24 +99,40 @@ class GenericFloatsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_float_little_endian().Known()) return false; - if (has_float_little_endian().ValueOrDefault() && !float_little_endian().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !float_little_endian().Ok()) return false; + } - if (!has_float_big_endian().Known()) return false; - if (has_float_big_endian().ValueOrDefault() && !float_big_endian().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !float_big_endian().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -599,24 +615,40 @@ class GenericDoublesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_double_little_endian().Known()) return false; - if (has_double_little_endian().ValueOrDefault() && !double_little_endian().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !double_little_endian().Ok()) return false; + } - if (!has_double_big_endian().Known()) return false; - if (has_double_big_endian().ValueOrDefault() && !double_big_endian().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !double_big_endian().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/imported.emb.h b/testdata/golden_cpp/imported.emb.h index 2217543..ce0cbea 100644 --- a/testdata/golden_cpp/imported.emb.h +++ b/testdata/golden_cpp/imported.emb.h @@ -90,20 +90,33 @@ class GenericInnerView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/imported_genfiles.emb.h b/testdata/golden_cpp/imported_genfiles.emb.h index af1ef31..eb26bc9 100644 --- a/testdata/golden_cpp/imported_genfiles.emb.h +++ b/testdata/golden_cpp/imported_genfiles.emb.h @@ -91,20 +91,33 @@ class GenericInnerView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/importer.emb.h b/testdata/golden_cpp/importer.emb.h index 75ad2d2..3c54911 100644 --- a/testdata/golden_cpp/importer.emb.h +++ b/testdata/golden_cpp/importer.emb.h @@ -95,24 +95,40 @@ class GenericOuterView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_inner().Known()) return false; - if (has_inner().ValueOrDefault() && !inner().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !inner().Ok()) return false; + } - if (!has_inner_gen().Known()) return false; - if (has_inner_gen().ValueOrDefault() && !inner_gen().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !inner_gen().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/importer2.emb.h b/testdata/golden_cpp/importer2.emb.h index ca22c93..8b99ad6 100644 --- a/testdata/golden_cpp/importer2.emb.h +++ b/testdata/golden_cpp/importer2.emb.h @@ -92,20 +92,33 @@ class GenericOuter2View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_outer().Known()) return false; - if (has_outer().ValueOrDefault() && !outer().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !outer().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/inline_type.emb.h b/testdata/golden_cpp/inline_type.emb.h index 8f89827..0adbce3 100644 --- a/testdata/golden_cpp/inline_type.emb.h +++ b/testdata/golden_cpp/inline_type.emb.h @@ -272,24 +272,40 @@ class GenericFooView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_status().Known()) return false; - if (has_status().ValueOrDefault() && !status().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !status().Ok()) return false; + } - if (!has_secondary_status().Known()) return false; - if (has_secondary_status().ValueOrDefault() && !secondary_status().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !secondary_status().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/int_sizes.emb.h b/testdata/golden_cpp/int_sizes.emb.h index fe697e9..ddb7e4d 100644 --- a/testdata/golden_cpp/int_sizes.emb.h +++ b/testdata/golden_cpp/int_sizes.emb.h @@ -97,48 +97,82 @@ class GenericSizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_three_byte().Known()) return false; - if (has_three_byte().ValueOrDefault() && !three_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_byte().Ok()) return false; + } - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_five_byte().Known()) return false; - if (has_five_byte().ValueOrDefault() && !five_byte().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !five_byte().Ok()) return false; + } - if (!has_six_byte().Known()) return false; - if (has_six_byte().ValueOrDefault() && !six_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_byte().Ok()) return false; + } - if (!has_seven_byte().Known()) return false; - if (has_seven_byte().ValueOrDefault() && !seven_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !seven_byte().Ok()) return false; + } - if (!has_eight_byte().Known()) return false; - if (has_eight_byte().ValueOrDefault() && !eight_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !eight_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/large_array.emb.h b/testdata/golden_cpp/large_array.emb.h index 47b4511..81048d8 100644 --- a/testdata/golden_cpp/large_array.emb.h +++ b/testdata/golden_cpp/large_array.emb.h @@ -91,24 +91,40 @@ class GenericUIntArrayView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_element_count().Known()) return false; - if (has_element_count().ValueOrDefault() && !element_count().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !element_count().Ok()) return false; + } - if (!has_elements().Known()) return false; - if (has_elements().ValueOrDefault() && !elements().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !elements().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/nested_structure.emb.h b/testdata/golden_cpp/nested_structure.emb.h index b953e31..9da33ea 100644 --- a/testdata/golden_cpp/nested_structure.emb.h +++ b/testdata/golden_cpp/nested_structure.emb.h @@ -108,28 +108,47 @@ class GenericContainerView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_weight().Known()) return false; - if (has_weight().ValueOrDefault() && !weight().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !weight().Ok()) return false; + } - if (!has_important_box().Known()) return false; - if (has_important_box().ValueOrDefault() && !important_box().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !important_box().Ok()) return false; + } - if (!has_other_box().Known()) return false; - if (has_other_box().ValueOrDefault() && !other_box().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !other_box().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -685,24 +704,40 @@ class GenericBoxView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_id().Known()) return false; - if (has_id().ValueOrDefault() && !id().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !id().Ok()) return false; + } - if (!has_count().Known()) return false; - if (has_count().ValueOrDefault() && !count().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !count().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1185,24 +1220,40 @@ class GenericTruckView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_id().Known()) return false; - if (has_id().ValueOrDefault() && !id().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !id().Ok()) return false; + } - if (!has_cargo().Known()) return false; - if (has_cargo().ValueOrDefault() && !cargo().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !cargo().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/next_keyword.emb.h b/testdata/golden_cpp/next_keyword.emb.h index 624c954..eb40049 100644 --- a/testdata/golden_cpp/next_keyword.emb.h +++ b/testdata/golden_cpp/next_keyword.emb.h @@ -93,32 +93,54 @@ class GenericNextKeywordView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_value32().Known()) return false; - if (has_value32().ValueOrDefault() && !value32().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value32().Ok()) return false; + } - if (!has_value16().Known()) return false; - if (has_value16().ValueOrDefault() && !value16().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value16().Ok()) return false; + } - if (!has_value8().Known()) return false; - if (has_value8().ValueOrDefault() && !value8().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value8().Ok()) return false; + } - if (!has_value8_offset().Known()) return false; - if (has_value8_offset().ValueOrDefault() && !value8_offset().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value8_offset().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/no_enum_traits.emb.h b/testdata/golden_cpp/no_enum_traits.emb.h index 5f97e05..c0aaafa 100644 --- a/testdata/golden_cpp/no_enum_traits.emb.h +++ b/testdata/golden_cpp/no_enum_traits.emb.h @@ -14,10 +14,6 @@ #include "runtime/cpp/emboss_prelude.h" -#include "runtime/cpp/emboss_enum_view.h" - -#include "runtime/cpp/emboss_text_util.h" - /* NOLINTBEGIN */ @@ -38,79 +34,6 @@ enum class Foo : ::std::uint64_t { VALUE = static_cast(10LL), }; -template -class EnumTraits; - -template <> -class EnumTraits final { - public: - static bool TryToGetEnumFromName(const char *emboss_reserved_local_name, - Foo *emboss_reserved_local_result) { - if (emboss_reserved_local_name == nullptr) return false; - if (!strcmp("VALUE", emboss_reserved_local_name)) { - *emboss_reserved_local_result = Foo::VALUE; - return true; - } - - return false; - } - - static const char *TryToGetNameFromEnum( - Foo emboss_reserved_local_value) { - switch (emboss_reserved_local_value) { - case Foo::VALUE: return "VALUE"; - - default: return nullptr; - } - } - - static bool EnumIsKnown(Foo emboss_reserved_local_value) { - switch (emboss_reserved_local_value) { - case Foo::VALUE: return true; - - default: - return false; - } - } - - static ::std::ostream &SendToOstream(::std::ostream &emboss_reserved_local_os, - Foo emboss_reserved_local_value) { - const char *emboss_reserved_local_name = - TryToGetNameFromEnum(emboss_reserved_local_value); - if (emboss_reserved_local_name == nullptr) { - emboss_reserved_local_os - << static_cast::type>( - emboss_reserved_local_value); - } else { - emboss_reserved_local_os << emboss_reserved_local_name; - } - return emboss_reserved_local_os; - } -}; - -static inline bool TryToGetEnumFromName( - const char *emboss_reserved_local_name, - Foo *emboss_reserved_local_result) { - return EnumTraits::TryToGetEnumFromName( - emboss_reserved_local_name, emboss_reserved_local_result); -} - -static inline const char *TryToGetNameFromEnum( - Foo emboss_reserved_local_value) { - return EnumTraits::TryToGetNameFromEnum( - emboss_reserved_local_value); -} - -static inline bool EnumIsKnown(Foo emboss_reserved_local_value) { - return EnumTraits::EnumIsKnown(emboss_reserved_local_value); -} - -static inline ::std::ostream &operator<<( - ::std::ostream &emboss_reserved_local_os, - Foo emboss_reserved_local_value) { - return EnumTraits::SendToOstream(emboss_reserved_local_os, - emboss_reserved_local_value); -} @@ -169,20 +92,33 @@ class GenericBarView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_foo().Known()) return false; - if (has_foo().ValueOrDefault() && !foo().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !foo().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -265,92 +201,6 @@ class GenericBarView final { emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); } - template - bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) const { - ::std::string emboss_reserved_local_brace; - if (!::emboss::support::ReadToken(emboss_reserved_local_stream, - &emboss_reserved_local_brace)) - return false; - if (emboss_reserved_local_brace != "{") return false; - for (;;) { - ::std::string emboss_reserved_local_name; - if (!::emboss::support::ReadToken(emboss_reserved_local_stream, - &emboss_reserved_local_name)) - return false; - if (emboss_reserved_local_name == ",") - if (!::emboss::support::ReadToken(emboss_reserved_local_stream, - &emboss_reserved_local_name)) - return false; - if (emboss_reserved_local_name == "}") return true; - ::std::string emboss_reserved_local_colon; - if (!::emboss::support::ReadToken(emboss_reserved_local_stream, - &emboss_reserved_local_colon)) - return false; - if (emboss_reserved_local_colon != ":") return false; - if (emboss_reserved_local_name == "foo") { - if (!foo().UpdateFromTextStream( - emboss_reserved_local_stream)) { - return false; - } - continue; - } - - return false; - } - } - - template - void WriteToTextStream( - Stream *emboss_reserved_local_stream, - ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = - emboss_reserved_local_options.PlusOneIndent(); - if (emboss_reserved_local_options.multiline()) { - emboss_reserved_local_stream->Write("{\n"); - } else { - emboss_reserved_local_stream->Write("{"); - } - bool emboss_reserved_local_wrote_field = false; - if (has_foo().ValueOr(false)) { - if (!emboss_reserved_local_field_options.allow_partial_output() || - foo().IsAggregate() || foo().Ok()) { - if (emboss_reserved_local_field_options.multiline()) { - emboss_reserved_local_stream->Write( - emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } - emboss_reserved_local_stream->Write(" "); - } - emboss_reserved_local_stream->Write("foo: "); - foo().WriteToTextStream(emboss_reserved_local_stream, - emboss_reserved_local_field_options); - emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { - emboss_reserved_local_stream->Write("\n"); - } - } else if (emboss_reserved_local_field_options.allow_partial_output() && - emboss_reserved_local_field_options.comments() && - !foo().IsAggregate() && !foo().Ok()) { - if (emboss_reserved_local_field_options.multiline()) { - emboss_reserved_local_stream->Write( - emboss_reserved_local_field_options.current_indent()); - } - emboss_reserved_local_stream->Write("# foo: UNREADABLE\n"); - } - } - - (void)emboss_reserved_local_wrote_field; - if (emboss_reserved_local_options.multiline()) { - emboss_reserved_local_stream->Write( - emboss_reserved_local_options.current_indent()); - emboss_reserved_local_stream->Write("}"); - } else { - emboss_reserved_local_stream->Write(" }"); - } - } - static constexpr bool IsAggregate() { return true; } diff --git a/testdata/golden_cpp/parameters.emb.h b/testdata/golden_cpp/parameters.emb.h index d60f164..b6c33ae 100644 --- a/testdata/golden_cpp/parameters.emb.h +++ b/testdata/golden_cpp/parameters.emb.h @@ -388,32 +388,55 @@ class GenericMultiVersionView final { bool Ok() const { if (!IsComplete()) return false; if (!parameters_initialized_) return false; - if (!has_message_id().Known()) return false; - if (has_message_id().ValueOrDefault() && !message_id().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = message_id(); + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !message_id().Ok()) return false; + } - if (!has_axes().Known()) return false; - if (has_axes().ValueOrDefault() && !axes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axes().Ok()) return false; + } - if (!has_config().Known()) return false; - if (has_config().ValueOrDefault() && !config().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !config().Ok()) return false; + } - if (!has_config_vx().Known()) return false; - if (has_config_vx().ValueOrDefault() && !config_vx().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Equal((product().Ok() ? ::emboss::support::Maybe(static_cast(product().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(23))), ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1)))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !config_vx().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1129,36 +1152,62 @@ class GenericAxesView final { bool Ok() const { if (!IsComplete()) return false; if (!parameters_initialized_) return false; - if (!has_values().Known()) return false; - if (has_values().ValueOrDefault() && !values().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = axes(); + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !values().Ok()) return false; + } - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_z().Known()) return false; - if (has_z().ValueOrDefault() && !z().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(2LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !z().Ok()) return false; + } - if (!has_axis_count_plus_one().Known()) return false; - if (has_axis_count_plus_one().ValueOrDefault() && !axis_count_plus_one().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axis_count_plus_one().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1961,32 +2010,54 @@ class GenericAxisPairView final { bool Ok() const { if (!IsComplete()) return false; if (!parameters_initialized_) return false; - if (!has_axis_type_a().Known()) return false; - if (has_axis_type_a().ValueOrDefault() && !axis_type_a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axis_type_a().Ok()) return false; + } - if (!has_axis_a().Known()) return false; - if (has_axis_a().ValueOrDefault() && !axis_a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axis_a().Ok()) return false; + } - if (!has_axis_type_b().Known()) return false; - if (has_axis_type_b().ValueOrDefault() && !axis_type_b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axis_type_b().Ok()) return false; + } - if (!has_axis_b().Known()) return false; - if (has_axis_b().ValueOrDefault() && !axis_b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axis_b().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2716,24 +2787,40 @@ class GenericAxesEnvelopeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_axis_count().Known()) return false; - if (has_axis_count().ValueOrDefault() && !axis_count().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axis_count().Ok()) return false; + } - if (!has_axes().Known()) return false; - if (has_axes().ValueOrDefault() && !axes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axes().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -3356,36 +3443,62 @@ class GenericAxisView final { bool Ok() const { if (!IsComplete()) return false; if (!parameters_initialized_) return false; - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = axis_type(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_axis_type().Known()) return false; - if (has_axis_type().ValueOrDefault() && !axis_type().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !axis_type().Ok()) return false; + } - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(1))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(2))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_z().Known()) return false; - if (has_z().ValueOrDefault() && !z().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(3))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !z().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -4146,20 +4259,33 @@ class GenericConfigView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_power().Known()) return false; - if (has_power().ValueOrDefault() && !power().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !power().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -4570,20 +4696,33 @@ class GenericEmbossReservedAnonymousField1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_power().Known()) return false; - if (has_power().ValueOrDefault() && !power().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !power().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -4984,28 +5123,47 @@ class GenericConfigVXView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_emboss_reserved_anonymous_field_1().Known()) return false; - if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + } - if (!has_power().Known()) return false; - if (has_power().ValueOrDefault() && !power().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !power().Ok()) return false; + } - if (!has_gain().Known()) return false; - if (has_gain().ValueOrDefault() && !gain().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !gain().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5493,20 +5651,33 @@ class GenericStructWithUnusedParameterView final { bool Ok() const { if (!IsComplete()) return false; if (!parameters_initialized_) return false; - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5955,24 +6126,40 @@ class GenericStructContainingStructWithUnusedParameterView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_swup().Known()) return false; - if (has_swup().ValueOrDefault() && !swup().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !swup().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -6454,24 +6641,40 @@ class GenericBiasedValueView final { bool Ok() const { if (!IsComplete()) return false; if (!parameters_initialized_) return false; - if (!has_raw_value().Known()) return false; - if (has_raw_value().ValueOrDefault() && !raw_value().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !raw_value().Ok()) return false; + } - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -7006,24 +7209,40 @@ class GenericVirtualFirstFieldWithParamView final { bool Ok() const { if (!IsComplete()) return false; if (!parameters_initialized_) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -7518,24 +7737,40 @@ class GenericConstVirtualFirstFieldWithParamView final { bool Ok() const { if (!IsComplete()) return false; if (!parameters_initialized_) return false; - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -8039,28 +8274,47 @@ class GenericSizedArrayOfBiasedValuesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_element_count().Known()) return false; - if (has_element_count().ValueOrDefault() && !element_count().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !element_count().Ok()) return false; + } - if (!has_bias().Known()) return false; - if (has_bias().ValueOrDefault() && !bias().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !bias().Ok()) return false; + } - if (!has_values().Known()) return false; - if (has_values().ValueOrDefault() && !values().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !values().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/requires.emb.h b/testdata/golden_cpp/requires.emb.h index 500813b..1d2c250 100644 --- a/testdata/golden_cpp/requires.emb.h +++ b/testdata/golden_cpp/requires.emb.h @@ -192,40 +192,68 @@ class GenericRequiresIntegersView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_zero_through_nine().Known()) return false; - if (has_zero_through_nine().ValueOrDefault() && !zero_through_nine().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !zero_through_nine().Ok()) return false; + } - if (!has_ten_through_twenty().Known()) return false; - if (has_ten_through_twenty().ValueOrDefault() && !ten_through_twenty().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten_through_twenty().Ok()) return false; + } - if (!has_disjoint().Known()) return false; - if (has_disjoint().ValueOrDefault() && !disjoint().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !disjoint().Ok()) return false; + } - if (!has_ztn_plus_ttt().Known()) return false; - if (has_ztn_plus_ttt().ValueOrDefault() && !ztn_plus_ttt().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ztn_plus_ttt().Ok()) return false; + } - if (!has_alias_of_zero_through_nine().Known()) return false; - if (has_alias_of_zero_through_nine().ValueOrDefault() && !alias_of_zero_through_nine().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_zero_through_nine().Ok()) return false; + } - if (!has_zero_through_nine_plus_five().Known()) return false; - if (has_zero_through_nine_plus_five().ValueOrDefault() && !zero_through_nine_plus_five().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !zero_through_nine_plus_five().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } if (!(::emboss::support::LessThanOrEqual((zero_through_nine().Ok() ? ::emboss::support::Maybe(static_cast(zero_through_nine().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Difference((ten_through_twenty().Ok() ? ::emboss::support::Maybe(static_cast(ten_through_twenty().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(10LL))))).ValueOr(false)) @@ -1166,32 +1194,54 @@ class GenericEmbossReservedAnonymousField2View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_must_be_true().Known()) return false; - if (has_must_be_true().ValueOrDefault() && !must_be_true().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !must_be_true().Ok()) return false; + } - if (!has_must_be_false().Known()) return false; - if (has_must_be_false().ValueOrDefault() && !must_be_false().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !must_be_false().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -1823,44 +1873,76 @@ class GenericRequiresBoolsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_emboss_reserved_anonymous_field_2().Known()) return false; - if (has_emboss_reserved_anonymous_field_2().ValueOrDefault() && !emboss_reserved_anonymous_field_2().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_2().Ok()) return false; + } - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_must_be_true().Known()) return false; - if (has_must_be_true().ValueOrDefault() && !must_be_true().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !must_be_true().Ok()) return false; + } - if (!has_must_be_false().Known()) return false; - if (has_must_be_false().ValueOrDefault() && !must_be_false().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !must_be_false().Ok()) return false; + } - if (!has_b_must_be_false().Known()) return false; - if (has_b_must_be_false().ValueOrDefault() && !b_must_be_false().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b_must_be_false().Ok()) return false; + } - if (!has_alias_of_a_must_be_true().Known()) return false; - if (has_alias_of_a_must_be_true().ValueOrDefault() && !alias_of_a_must_be_true().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_a_must_be_true().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } if (!(::emboss::support::Or((a().Ok() ? ::emboss::support::Maybe(static_cast(a().UncheckedRead())) : ::emboss::support::Maybe()), (b().Ok() ? ::emboss::support::Maybe(static_cast(b().UncheckedRead())) : ::emboss::support::Maybe()))).ValueOr(false)) @@ -2741,36 +2823,61 @@ class GenericRequiresEnumsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_filtered_a().Known()) return false; - if (has_filtered_a().ValueOrDefault() && !filtered_a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !filtered_a().Ok()) return false; + } - if (!has_alias_of_a().Known()) return false; - if (has_alias_of_a().ValueOrDefault() && !alias_of_a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_a().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } if (!(::emboss::support::Or(::emboss::support::Equal((a().Ok() ? ::emboss::support::Maybe(static_cast(a().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0))), ::emboss::support::Equal((b().Ok() ? ::emboss::support::Maybe(static_cast(b().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0))))).ValueOr(false)) @@ -3569,32 +3676,55 @@ class GenericEmbossReservedAnonymousField1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = b_exists(); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b_exists().Known()) return false; - if (has_b_exists().ValueOrDefault() && !b_exists().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b_exists().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = (emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_b_true().Known()) return false; - if (has_b_true().ValueOrDefault() && !b_true().Ok()) return false; + { + const auto emboss_reserved_local_field_present = (emboss_reserved_local_ok_subexpr_1.Ok() ? ::emboss::support::Maybe(static_cast(emboss_reserved_local_ok_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe()); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b_true().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -4255,36 +4385,62 @@ class GenericRequiresWithOptionalFieldsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_emboss_reserved_anonymous_field_1().Known()) return false; - if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + const auto emboss_reserved_local_ok_subexpr_1 = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + } - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b_exists().Known()) return false; - if (has_b_exists().ValueOrDefault() && !b_exists().Ok()) return false; + { + const auto emboss_reserved_local_field_present = emboss_reserved_local_ok_subexpr_1; + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b_exists().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Maybe(true), emboss_reserved_anonymous_field_1().has_b()); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_b_true().Known()) return false; - if (has_b_true().ValueOrDefault() && !b_true().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Maybe(true), emboss_reserved_anonymous_field_1().has_b_true()); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b_true().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } if (!(::emboss::support::Or((a().Ok() ? ::emboss::support::Maybe(static_cast(a().UncheckedRead())) : ::emboss::support::Maybe()), (b().Ok() ? ::emboss::support::Maybe(static_cast(b().UncheckedRead())) : ::emboss::support::Maybe()))).ValueOr(false)) @@ -4847,20 +5003,33 @@ class GenericElementView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5261,20 +5430,33 @@ class GenericRequiresInArrayElementsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_xs().Known()) return false; - if (has_xs().ValueOrDefault() && !xs().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xs().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/start_size_range.emb.h b/testdata/golden_cpp/start_size_range.emb.h index d9f0166..f4f3c71 100644 --- a/testdata/golden_cpp/start_size_range.emb.h +++ b/testdata/golden_cpp/start_size_range.emb.h @@ -93,32 +93,54 @@ class GenericStartSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_size().Known()) return false; - if (has_size().ValueOrDefault() && !size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !size().Ok()) return false; + } - if (!has_start_size_constants().Known()) return false; - if (has_start_size_constants().ValueOrDefault() && !start_size_constants().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !start_size_constants().Ok()) return false; + } - if (!has_payload().Known()) return false; - if (has_payload().ValueOrDefault() && !payload().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !payload().Ok()) return false; + } - if (!has_counter().Known()) return false; - if (has_counter().ValueOrDefault() && !counter().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !counter().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/subtypes.emb.h b/testdata/golden_cpp/subtypes.emb.h index 860d554..5177de1 100644 --- a/testdata/golden_cpp/subtypes.emb.h +++ b/testdata/golden_cpp/subtypes.emb.h @@ -226,28 +226,47 @@ class GenericInInView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_outer_offset().Known()) return false; - if (has_outer_offset().ValueOrDefault() && !outer_offset().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !outer_offset().Ok()) return false; + } - if (!has_field_enum().Known()) return false; - if (has_field_enum().ValueOrDefault() && !field_enum().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !field_enum().Ok()) return false; + } - if (!has_in_2().Known()) return false; - if (has_in_2().ValueOrDefault() && !in_2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_2().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -778,40 +797,68 @@ class GenericInView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_in_in_1().Known()) return false; - if (has_in_in_1().ValueOrDefault() && !in_in_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_in_1().Ok()) return false; + } - if (!has_in_in_2().Known()) return false; - if (has_in_in_2().ValueOrDefault() && !in_in_2().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_in_2().Ok()) return false; + } - if (!has_in_in_in_1().Known()) return false; - if (has_in_in_in_1().ValueOrDefault() && !in_in_in_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_in_in_1().Ok()) return false; + } - if (!has_in_2().Known()) return false; - if (has_in_2().ValueOrDefault() && !in_2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_2().Ok()) return false; + } - if (!has_name_collision().Known()) return false; - if (has_name_collision().ValueOrDefault() && !name_collision().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !name_collision().Ok()) return false; + } - if (!has_name_collision_check().Known()) return false; - if (has_name_collision_check().ValueOrDefault() && !name_collision_check().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !name_collision_check().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1627,20 +1674,33 @@ class GenericIn2View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_field_byte().Known()) return false; - if (has_field_byte().ValueOrDefault() && !field_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !field_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2041,48 +2101,82 @@ class GenericOutView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_in_1().Known()) return false; - if (has_in_1().ValueOrDefault() && !in_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_1().Ok()) return false; + } - if (!has_in_2().Known()) return false; - if (has_in_2().ValueOrDefault() && !in_2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_2().Ok()) return false; + } - if (!has_in_in_1().Known()) return false; - if (has_in_in_1().ValueOrDefault() && !in_in_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_in_1().Ok()) return false; + } - if (!has_in_in_2().Known()) return false; - if (has_in_in_2().ValueOrDefault() && !in_in_2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_in_2().Ok()) return false; + } - if (!has_in_in_in_1().Known()) return false; - if (has_in_in_in_1().ValueOrDefault() && !in_in_in_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_in_in_1().Ok()) return false; + } - if (!has_in_in_in_2().Known()) return false; - if (has_in_in_in_2().ValueOrDefault() && !in_in_in_2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !in_in_in_2().Ok()) return false; + } - if (!has_name_collision().Known()) return false; - if (has_name_collision().ValueOrDefault() && !name_collision().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !name_collision().Ok()) return false; + } - if (!has_nested_constant_check().Known()) return false; - if (has_nested_constant_check().ValueOrDefault() && !nested_constant_check().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !nested_constant_check().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/text_format.emb.h b/testdata/golden_cpp/text_format.emb.h index 46f257d..5103a11 100644 --- a/testdata/golden_cpp/text_format.emb.h +++ b/testdata/golden_cpp/text_format.emb.h @@ -107,24 +107,40 @@ class GenericVanillaView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -608,28 +624,47 @@ class GenericStructWithSkippedFieldsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1160,28 +1195,47 @@ class GenericStructWithSkippedStructureFieldsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_c().Known()) return false; - if (has_c().ValueOrDefault() && !c().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !c().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/uint_sizes.emb.h b/testdata/golden_cpp/uint_sizes.emb.h index df5eb3f..60c8780 100644 --- a/testdata/golden_cpp/uint_sizes.emb.h +++ b/testdata/golden_cpp/uint_sizes.emb.h @@ -149,48 +149,82 @@ class GenericSizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_three_byte().Known()) return false; - if (has_three_byte().ValueOrDefault() && !three_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_byte().Ok()) return false; + } - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_five_byte().Known()) return false; - if (has_five_byte().ValueOrDefault() && !five_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !five_byte().Ok()) return false; + } - if (!has_six_byte().Known()) return false; - if (has_six_byte().ValueOrDefault() && !six_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_byte().Ok()) return false; + } - if (!has_seven_byte().Known()) return false; - if (has_seven_byte().ValueOrDefault() && !seven_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !seven_byte().Ok()) return false; + } - if (!has_eight_byte().Known()) return false; - if (has_eight_byte().ValueOrDefault() && !eight_byte().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !eight_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1141,48 +1175,82 @@ class GenericBigEndianSizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_three_byte().Known()) return false; - if (has_three_byte().ValueOrDefault() && !three_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_byte().Ok()) return false; + } - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_five_byte().Known()) return false; - if (has_five_byte().ValueOrDefault() && !five_byte().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !five_byte().Ok()) return false; + } - if (!has_six_byte().Known()) return false; - if (has_six_byte().ValueOrDefault() && !six_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_byte().Ok()) return false; + } - if (!has_seven_byte().Known()) return false; - if (has_seven_byte().ValueOrDefault() && !seven_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !seven_byte().Ok()) return false; + } - if (!has_eight_byte().Known()) return false; - if (has_eight_byte().ValueOrDefault() && !eight_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !eight_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2133,48 +2201,82 @@ class GenericAlternatingEndianSizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_three_byte().Known()) return false; - if (has_three_byte().ValueOrDefault() && !three_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_byte().Ok()) return false; + } - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_five_byte().Known()) return false; - if (has_five_byte().ValueOrDefault() && !five_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !five_byte().Ok()) return false; + } - if (!has_six_byte().Known()) return false; - if (has_six_byte().ValueOrDefault() && !six_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_byte().Ok()) return false; + } - if (!has_seven_byte().Known()) return false; - if (has_seven_byte().ValueOrDefault() && !seven_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !seven_byte().Ok()) return false; + } - if (!has_eight_byte().Known()) return false; - if (has_eight_byte().ValueOrDefault() && !eight_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !eight_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -3125,48 +3227,82 @@ class GenericEnumSizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_three_byte().Known()) return false; - if (has_three_byte().ValueOrDefault() && !three_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_byte().Ok()) return false; + } - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_five_byte().Known()) return false; - if (has_five_byte().ValueOrDefault() && !five_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !five_byte().Ok()) return false; + } - if (!has_six_byte().Known()) return false; - if (has_six_byte().ValueOrDefault() && !six_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_byte().Ok()) return false; + } - if (!has_seven_byte().Known()) return false; - if (has_seven_byte().ValueOrDefault() && !seven_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !seven_byte().Ok()) return false; + } - if (!has_eight_byte().Known()) return false; - if (has_eight_byte().ValueOrDefault() && !eight_byte().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !eight_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -4126,20 +4262,33 @@ class GenericEmbossReservedAnonymousField1View final { bool Ok() const { if (!IsComplete()) return false; - if (!has_three_and_a_half_byte().Known()) return false; - if (has_three_and_a_half_byte().ValueOrDefault() && !three_and_a_half_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_and_a_half_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -4541,36 +4690,61 @@ class GenericExplicitlySizedEnumSizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_three_byte().Known()) return false; - if (has_three_byte().ValueOrDefault() && !three_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_byte().Ok()) return false; + } - if (!has_emboss_reserved_anonymous_field_1().Known()) return false; - if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + } - if (!has_three_and_a_half_byte().Known()) return false; - if (has_three_and_a_half_byte().ValueOrDefault() && !three_and_a_half_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_and_a_half_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5515,48 +5689,82 @@ class GenericArraySizesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_one_byte().Known()) return false; - if (has_one_byte().ValueOrDefault() && !one_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_byte().Ok()) return false; + } - if (!has_two_byte().Known()) return false; - if (has_two_byte().ValueOrDefault() && !two_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_byte().Ok()) return false; + } - if (!has_three_byte().Known()) return false; - if (has_three_byte().ValueOrDefault() && !three_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !three_byte().Ok()) return false; + } - if (!has_four_byte().Known()) return false; - if (has_four_byte().ValueOrDefault() && !four_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_byte().Ok()) return false; + } - if (!has_five_byte().Known()) return false; - if (has_five_byte().ValueOrDefault() && !five_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !five_byte().Ok()) return false; + } - if (!has_six_byte().Known()) return false; - if (has_six_byte().ValueOrDefault() && !six_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !six_byte().Ok()) return false; + } - if (!has_seven_byte().Known()) return false; - if (has_seven_byte().ValueOrDefault() && !seven_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !seven_byte().Ok()) return false; + } - if (!has_eight_byte().Known()) return false; - if (has_eight_byte().ValueOrDefault() && !eight_byte().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !eight_byte().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/golden_cpp/virtual_field.emb.h b/testdata/golden_cpp/virtual_field.emb.h index 140020a..d2544ed 100644 --- a/testdata/golden_cpp/virtual_field.emb.h +++ b/testdata/golden_cpp/virtual_field.emb.h @@ -253,56 +253,96 @@ class GenericStructureWithConstantsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_ten().Known()) return false; - if (has_ten().ValueOrDefault() && !ten().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten().Ok()) return false; + } - if (!has_twenty().Known()) return false; - if (has_twenty().ValueOrDefault() && !twenty().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !twenty().Ok()) return false; + } - if (!has_four_billion().Known()) return false; - if (has_four_billion().ValueOrDefault() && !four_billion().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !four_billion().Ok()) return false; + } - if (!has_ten_billion().Known()) return false; - if (has_ten_billion().ValueOrDefault() && !ten_billion().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten_billion().Ok()) return false; + } - if (!has_minus_ten_billion().Known()) return false; - if (has_minus_ten_billion().ValueOrDefault() && !minus_ten_billion().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !minus_ten_billion().Ok()) return false; + } - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_alias_of_value().Known()) return false; - if (has_alias_of_value().ValueOrDefault() && !alias_of_value().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_value().Ok()) return false; + } - if (!has_alias_of_alias_of_value().Known()) return false; - if (has_alias_of_alias_of_value().ValueOrDefault() && !alias_of_alias_of_value().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_alias_of_value().Ok()) return false; + } - if (!has_alias_of_ten().Known()) return false; - if (has_alias_of_ten().ValueOrDefault() && !alias_of_ten().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_ten().Ok()) return false; + } - if (!has_alias_of_alias_of_ten().Known()) return false; - if (has_alias_of_alias_of_ten().ValueOrDefault() && !alias_of_alias_of_ten().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_alias_of_ten().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -1181,44 +1221,75 @@ class GenericStructureWithComputedValuesView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_value().Known()) return false; - if (has_value().ValueOrDefault() && !value().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value().Ok()) return false; + } - if (!has_doubled().Known()) return false; - if (has_doubled().ValueOrDefault() && !doubled().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !doubled().Ok()) return false; + } - if (!has_plus_ten().Known()) return false; - if (has_plus_ten().ValueOrDefault() && !plus_ten().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !plus_ten().Ok()) return false; + } - if (!has_value2().Known()) return false; - if (has_value2().ValueOrDefault() && !value2().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !value2().Ok()) return false; + } - if (!has_signed_doubled().Known()) return false; - if (has_signed_doubled().ValueOrDefault() && !signed_doubled().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !signed_doubled().Ok()) return false; + } - if (!has_signed_plus_ten().Known()) return false; - if (has_signed_plus_ten().ValueOrDefault() && !signed_plus_ten().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !signed_plus_ten().Ok()) return false; + } - if (!has_product().Known()) return false; - if (has_product().ValueOrDefault() && !product().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !product().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2211,28 +2282,47 @@ class GenericStructureWithConditionalValueView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_two_x().Known()) return false; - if (has_two_x().ValueOrDefault() && !two_x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::LessThan((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(2147483648ULL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_x().Ok()) return false; + } - if (!has_x_plus_one().Known()) return false; - if (has_x_plus_one().ValueOrDefault() && !x_plus_one().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x_plus_one().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -2851,28 +2941,47 @@ class GenericStructureWithValueInConditionView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_two_x().Known()) return false; - if (has_two_x().ValueOrDefault() && !two_x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_x().Ok()) return false; + } - if (!has_if_two_x_lt_100().Known()) return false; - if (has_if_two_x_lt_100().ValueOrDefault() && !if_two_x_lt_100().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::LessThan((two_x().Ok() ? ::emboss::support::Maybe(static_cast(two_x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(100LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !if_two_x_lt_100().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -3470,32 +3579,54 @@ class GenericStructureWithValuesInLocationView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_two_x().Known()) return false; - if (has_two_x().ValueOrDefault() && !two_x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !two_x().Ok()) return false; + } - if (!has_offset_two_x().Known()) return false; - if (has_offset_two_x().ValueOrDefault() && !offset_two_x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !offset_two_x().Ok()) return false; + } - if (!has_size_two_x().Known()) return false; - if (has_size_two_x().ValueOrDefault() && !size_two_x().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !size_two_x().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -4170,24 +4301,40 @@ class GenericStructureWithBoolValueView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_x_is_ten().Known()) return false; - if (has_x_is_ten().ValueOrDefault() && !x_is_ten().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x_is_ten().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -4763,24 +4910,40 @@ class GenericStructureWithEnumValueView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_x_size().Known()) return false; - if (has_x_size().ValueOrDefault() && !x_size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x_size().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5271,28 +5434,47 @@ class GenericStructureWithBitsWithValueView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_alias_of_b_sum().Known()) return false; - if (has_alias_of_b_sum().ValueOrDefault() && !alias_of_b_sum().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_b_sum().Ok()) return false; + } - if (!has_alias_of_b_a().Known()) return false; - if (has_alias_of_b_a().ValueOrDefault() && !alias_of_b_a().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_of_b_a().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -5824,28 +6006,47 @@ class GenericBitsWithValueView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a().Known()) return false; - if (has_a().ValueOrDefault() && !a().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a().Ok()) return false; + } - if (!has_b().Known()) return false; - if (has_b().ValueOrDefault() && !b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !b().Ok()) return false; + } - if (!has_sum().Known()) return false; - if (has_sum().ValueOrDefault() && !sum().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !sum().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -6413,24 +6614,40 @@ class GenericStructureUsingForeignConstantsView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_one_hundred().Known()) return false; - if (has_one_hundred().ValueOrDefault() && !one_hundred().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !one_hundred().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -6896,24 +7113,40 @@ class GenericHeaderView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_size().Known()) return false; - if (has_size().ValueOrDefault() && !size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !size().Ok()) return false; + } - if (!has_message_id().Known()) return false; - if (has_message_id().ValueOrDefault() && !message_id().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !message_id().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -7391,28 +7624,47 @@ class GenericSubfieldOfAliasView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_header().Known()) return false; - if (has_header().ValueOrDefault() && !header().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !header().Ok()) return false; + } - if (!has_h().Known()) return false; - if (has_h().ValueOrDefault() && !h().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !h().Ok()) return false; + } - if (!has_size().Known()) return false; - if (has_size().ValueOrDefault() && !size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !size().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -7907,28 +8159,47 @@ class GenericRestrictedAliasView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_a_b().Known()) return false; - if (has_a_b().ValueOrDefault() && !a_b().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_b().Ok()) return false; + } - if (!has_alias_switch().Known()) return false; - if (has_alias_switch().ValueOrDefault() && !alias_switch().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !alias_switch().Ok()) return false; + } - if (!has_a_b_alias().Known()) return false; - if (has_a_b_alias().ValueOrDefault() && !a_b_alias().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((alias_switch().Ok() ? ::emboss::support::Maybe(static_cast(alias_switch().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(10LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !a_b_alias().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -8461,24 +8732,40 @@ class GenericXView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_v().Known()) return false; - if (has_v().ValueOrDefault() && !v().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !v().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((v().Ok() ? ::emboss::support::Maybe(static_cast(v().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(10LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -8986,32 +9273,54 @@ class GenericHasFieldView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_z().Known()) return false; - if (has_z().ValueOrDefault() && !z().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !z().Ok()) return false; + } - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::GreaterThan((z().Ok() ? ::emboss::support::Maybe(static_cast(z().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(10LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = x().has_y(); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_x_has_y().Known()) return false; - if (has_x_has_y().ValueOrDefault() && !x_has_y().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = has_x(); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x_has_y().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -9649,28 +9958,47 @@ class GenericVirtualUnconditionallyUsesConditionalView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_xc().Known()) return false; - if (has_xc().ValueOrDefault() && !xc().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Equal((x().Ok() ? ::emboss::support::Maybe(static_cast(x().UncheckedRead())) : ::emboss::support::Maybe()), ::emboss::support::Maybe(static_cast(0LL))); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !xc().Ok()) return false; + } - if (!has_x_nor_xc().Known()) return false; - if (has_x_nor_xc().ValueOrDefault() && !x_nor_xc().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x_nor_xc().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -10275,24 +10603,40 @@ class GenericRView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_q().Known()) return false; - if (has_q().ValueOrDefault() && !q().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !q().Ok()) return false; + } - if (!has_IntrinsicSizeInBits().Known()) return false; - if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + } - if (!has_q_plus_bit_size().Known()) return false; - if (has_q_plus_bit_size().ValueOrDefault() && !q_plus_bit_size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !q_plus_bit_size().Ok()) return false; + } - if (!has_MaxSizeInBits().Known()) return false; - if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + } - if (!has_MinSizeInBits().Known()) return false; - if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBits().Ok()) return false; + } @@ -10776,24 +11120,40 @@ class GenericUsesSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_r().Known()) return false; - if (has_r().ValueOrDefault() && !r().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !r().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_r_q_plus_byte_size().Known()) return false; - if (has_r_q_plus_byte_size().ValueOrDefault() && !r_q_plus_byte_size().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !r_q_plus_byte_size().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -11280,24 +11640,40 @@ class GenericUsesExternalSizeView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_y().Known()) return false; - if (has_y().ValueOrDefault() && !y().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !y().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } @@ -11780,40 +12156,68 @@ class GenericImplicitWriteBackView final { bool Ok() const { if (!IsComplete()) return false; - if (!has_x().Known()) return false; - if (has_x().ValueOrDefault() && !x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x().Ok()) return false; + } - if (!has_x_plus_ten().Known()) return false; - if (has_x_plus_ten().ValueOrDefault() && !x_plus_ten().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x_plus_ten().Ok()) return false; + } - if (!has_ten_plus_x().Known()) return false; - if (has_ten_plus_x().ValueOrDefault() && !ten_plus_x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten_plus_x().Ok()) return false; + } - if (!has_x_minus_ten().Known()) return false; - if (has_x_minus_ten().ValueOrDefault() && !x_minus_ten().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !x_minus_ten().Ok()) return false; + } - if (!has_ten_minus_x().Known()) return false; - if (has_ten_minus_x().ValueOrDefault() && !ten_minus_x().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten_minus_x().Ok()) return false; + } - if (!has_ten_minus_x_plus_ten().Known()) return false; - if (has_ten_minus_x_plus_ten().ValueOrDefault() && !ten_minus_x_plus_ten().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !ten_minus_x_plus_ten().Ok()) return false; + } - if (!has_IntrinsicSizeInBytes().Known()) return false; - if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + } - if (!has_MaxSizeInBytes().Known()) return false; - if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + } - if (!has_MinSizeInBytes().Known()) return false; - if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + { + const auto emboss_reserved_local_field_present = ::emboss::support::Maybe(true); + if (!emboss_reserved_local_field_present.Known()) return false; + if (emboss_reserved_local_field_present.ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + } diff --git a/testdata/many_conditionals.emb b/testdata/many_conditionals.emb new file mode 100644 index 0000000..6efa7c6 --- /dev/null +++ b/testdata/many_conditionals.emb @@ -0,0 +1,305 @@ +[(cpp) namespace: "emboss::test"] +[$default byte_order: "LittleEndian"] + + +struct LargeConditionals: + 0 [+4] UInt tag + if tag == 0: + 4 [+4] UInt f0 + + if tag == 1: + 4 [+4] UInt f1 + + if tag == 2: + 4 [+4] UInt f2 + + if tag == 3: + 4 [+4] UInt f3 + + if tag == 4: + 4 [+4] UInt f4 + + if tag == 5: + 4 [+4] UInt f5 + + if tag == 6: + 4 [+4] UInt f6 + + if tag == 7: + 4 [+4] UInt f7 + + if tag == 8: + 4 [+4] UInt f8 + + if tag == 9: + 4 [+4] UInt f9 + + if tag == 10: + 4 [+4] UInt f10 + + if tag == 11: + 4 [+4] UInt f11 + + if tag == 12: + 4 [+4] UInt f12 + + if tag == 13: + 4 [+4] UInt f13 + + if tag == 14: + 4 [+4] UInt f14 + + if tag == 15: + 4 [+4] UInt f15 + + if tag == 16: + 4 [+4] UInt f16 + + if tag == 17: + 4 [+4] UInt f17 + + if tag == 18: + 4 [+4] UInt f18 + + if tag == 19: + 4 [+4] UInt f19 + + if tag == 20: + 4 [+4] UInt f20 + + if tag == 21: + 4 [+4] UInt f21 + + if tag == 22: + 4 [+4] UInt f22 + + if tag == 23: + 4 [+4] UInt f23 + + if tag == 24: + 4 [+4] UInt f24 + + if tag == 25: + 4 [+4] UInt f25 + + if tag == 26: + 4 [+4] UInt f26 + + if tag == 27: + 4 [+4] UInt f27 + + if tag == 28: + 4 [+4] UInt f28 + + if tag == 29: + 4 [+4] UInt f29 + + if tag == 30: + 4 [+4] UInt f30 + + if tag == 31: + 4 [+4] UInt f31 + + if tag == 32: + 4 [+4] UInt f32 + + if tag == 33: + 4 [+4] UInt f33 + + if tag == 34: + 4 [+4] UInt f34 + + if tag == 35: + 4 [+4] UInt f35 + + if tag == 36: + 4 [+4] UInt f36 + + if tag == 37: + 4 [+4] UInt f37 + + if tag == 38: + 4 [+4] UInt f38 + + if tag == 39: + 4 [+4] UInt f39 + + if tag == 40: + 4 [+4] UInt f40 + + if tag == 41: + 4 [+4] UInt f41 + + if tag == 42: + 4 [+4] UInt f42 + + if tag == 43: + 4 [+4] UInt f43 + + if tag == 44: + 4 [+4] UInt f44 + + if tag == 45: + 4 [+4] UInt f45 + + if tag == 46: + 4 [+4] UInt f46 + + if tag == 47: + 4 [+4] UInt f47 + + if tag == 48: + 4 [+4] UInt f48 + + if tag == 49: + 4 [+4] UInt f49 + + if tag == 50: + 4 [+4] UInt f50 + + if tag == 51: + 4 [+4] UInt f51 + + if tag == 52: + 4 [+4] UInt f52 + + if tag == 53: + 4 [+4] UInt f53 + + if tag == 54: + 4 [+4] UInt f54 + + if tag == 55: + 4 [+4] UInt f55 + + if tag == 56: + 4 [+4] UInt f56 + + if tag == 57: + 4 [+4] UInt f57 + + if tag == 58: + 4 [+4] UInt f58 + + if tag == 59: + 4 [+4] UInt f59 + + if tag == 60: + 4 [+4] UInt f60 + + if tag == 61: + 4 [+4] UInt f61 + + if tag == 62: + 4 [+4] UInt f62 + + if tag == 63: + 4 [+4] UInt f63 + + if tag == 64: + 4 [+4] UInt f64 + + if tag == 65: + 4 [+4] UInt f65 + + if tag == 66: + 4 [+4] UInt f66 + + if tag == 67: + 4 [+4] UInt f67 + + if tag == 68: + 4 [+4] UInt f68 + + if tag == 69: + 4 [+4] UInt f69 + + if tag == 70: + 4 [+4] UInt f70 + + if tag == 71: + 4 [+4] UInt f71 + + if tag == 72: + 4 [+4] UInt f72 + + if tag == 73: + 4 [+4] UInt f73 + + if tag == 74: + 4 [+4] UInt f74 + + if tag == 75: + 4 [+4] UInt f75 + + if tag == 76: + 4 [+4] UInt f76 + + if tag == 77: + 4 [+4] UInt f77 + + if tag == 78: + 4 [+4] UInt f78 + + if tag == 79: + 4 [+4] UInt f79 + + if tag == 80: + 4 [+4] UInt f80 + + if tag == 81: + 4 [+4] UInt f81 + + if tag == 82: + 4 [+4] UInt f82 + + if tag == 83: + 4 [+4] UInt f83 + + if tag == 84: + 4 [+4] UInt f84 + + if tag == 85: + 4 [+4] UInt f85 + + if tag == 86: + 4 [+4] UInt f86 + + if tag == 87: + 4 [+4] UInt f87 + + if tag == 88: + 4 [+4] UInt f88 + + if tag == 89: + 4 [+4] UInt f89 + + if tag == 90: + 4 [+4] UInt f90 + + if tag == 91: + 4 [+4] UInt f91 + + if tag == 92: + 4 [+4] UInt f92 + + if tag == 93: + 4 [+4] UInt f93 + + if tag == 94: + 4 [+4] UInt f94 + + if tag == 95: + 4 [+4] UInt f95 + + if tag == 96: + 4 [+4] UInt f96 + + if tag == 97: + 4 [+4] UInt f97 + + if tag == 98: + 4 [+4] UInt f98 + + if tag == 99: + 4 [+4] UInt f99