// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Generated by generate.py.
library fidl.test.dangerous.union.types.lower;
union DangerousMembers {
  uint32 abstract;
  uint32 alignas;
  uint32 alignof;
  uint32 and;
  uint32 and_eq;
  uint32 as;
  uint32 asm;
  uint32 assert;
  uint32 async;
  uint32 atomic_cancel;
  uint32 atomic_commit;
  uint32 atomic_noexcept;
  uint32 auto;
  uint32 await;
  uint32 become;
  uint32 bitand;
  uint32 bitor;
  uint32 bool;
  uint32 box;
  uint32 break;
  uint32 byte;
  uint32 case;
  uint32 catch;
  uint32 chan;
  uint32 char;
  uint32 char16_t;
  uint32 char32_t;
  uint32 class;
  uint32 co_await;
  uint32 co_return;
  uint32 co_yield;
  uint32 coding_traits;
  uint32 compl;
  uint32 concept;
  uint32 const;
  uint32 const_cast;
  uint32 constexpr;
  uint32 continue;
  uint32 controller;
  uint32 covariant;
  uint32 crate;
  uint32 decltype;
  uint32 decoder;
  uint32 default;
  uint32 defer;
  uint32 deferred;
  uint32 delete;
  uint32 do;
  uint32 double;
  uint32 dynamic;
  uint32 dynamic_cast;
  uint32 else;
  uint32 encoder;
  uint32 ensure_values_instantiated;
  uint32 enum;
  uint32 err;
  uint32 explicit;
  uint32 export;
  uint32 extends;
  uint32 extern;
  uint32 external;
  uint32 factory;
  uint32 fallthrough;
  uint32 false;
  uint32 fidl;
  uint32 fidl_type;
  uint32 final;
  uint32 finally;
  uint32 float;
  uint32 fn;
  uint32 for;
  uint32 friend;
  uint32 func;
  uint32 future;
  uint32 futures;
  uint32 get;
  uint32 go;
  uint32 goto;
  uint32 has_invalid_tag;
  uint32 hash_code;
  uint32 if;
  uint32 impl;
  uint32 implements;
  uint32 import;
  uint32 in;
  uint32 index;
  uint32 inline;
  uint32 int;
  uint32 int16;
  uint32 int32;
  uint32 int64;
  uint32 int8;
  uint32 interface;
  uint32 is;
  uint32 let;
  uint32 lhs;
  uint32 library;
  uint32 list;
  uint32 long;
  uint32 loop;
  uint32 macro;
  uint32 map;
  uint32 match;
  uint32 mixin;
  uint32 mod;
  uint32 module;
  uint32 move;
  uint32 mut;
  uint32 mutable;
  uint32 namespace;
  uint32 never;
  uint32 new;
  uint32 no_such_method;
  uint32 noexcept;
  uint32 none;
  uint32 not;
  uint32 not_eq;
  uint32 null;
  uint32 nullptr;
  uint32 num;
  uint32 object;
  uint32 offset;
  uint32 offsetof;
  uint32 ok;
  uint32 on_open;
  uint32 operator;
  uint32 option;
  uint32 or;
  uint32 or_eq;
  uint32 override;
  uint32 package;
  uint32 part;
  uint32 priv;
  uint32 private;
  uint32 proc;
  uint32 protected;
  uint32 proxy;
  uint32 pub;
  uint32 public;
  uint32 pure;
  uint32 range;
  uint32 ref;
  uint32 register;
  uint32 reinterpret_cast;
  uint32 requires;
  uint32 result;
  uint32 rethrow;
  uint32 return;
  uint32 rhs;
  uint32 rune;
  uint32 runtime_type;
  uint32 select;
  uint32 self;
  uint32 send;
  uint32 set;
  uint32 set_controller;
  uint32 short;
  uint32 signed;
  uint32 sizeof;
  uint32 some;
  uint32 static;
  uint32 static_assert;
  uint32 static_cast;
  uint32 stream;
  uint32 string;
  uint32 struct;
  uint32 stub;
  uint32 super;
  uint32 switch;
  uint32 synchronized;
  uint32 template;
  uint32 this;
  uint32 thread_local;
  uint32 throw;
  uint32 to_string;
  uint32 trait;
  uint32 true;
  uint32 try;
  uint32 type;
  uint32 typedef;
  uint32 typeid;
  uint32 typename;
  uint32 typeof;
  uint32 uint16;
  uint32 uint32;
  uint32 uint64;
  uint32 uint8;
  uint32 union;
  uint32 unsafe;
  uint32 unsigned;
  uint32 unsized;
  uint32 use;
  uint32 using;
  uint32 value;
  uint32 value_of;
  uint32 value_union;
  uint32 values_map;
  uint32 var;
  uint32 vec;
  uint32 virtual;
  uint32 void;
  uint32 volatile;
  uint32 wchar_t;
  uint32 where;
  uint32 which;
  uint32 while;
  uint32 with;
  uint32 xor;
  uint32 xor_eq;
  uint32 xunion;
  uint32 yield;
  uint32 zx;
};
