// 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.camel;
union DangerousMembers {
  uint32 Abstract;
  uint32 Alignas;
  uint32 Alignof;
  uint32 And;
  uint32 AndEq;
  uint32 As;
  uint32 Asm;
  uint32 Assert;
  uint32 Async;
  uint32 AtomicCancel;
  uint32 AtomicCommit;
  uint32 AtomicNoexcept;
  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 Char16T;
  uint32 Char32T;
  uint32 Class;
  uint32 CoAwait;
  uint32 CoReturn;
  uint32 CoYield;
  uint32 CodingTraits;
  uint32 Compl;
  uint32 Concept;
  uint32 Const;
  uint32 ConstCast;
  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 DynamicCast;
  uint32 Else;
  uint32 Encoder;
  uint32 EnsureValuesInstantiated;
  uint32 Enum;
  uint32 Err;
  uint32 Explicit;
  uint32 Export;
  uint32 Extends;
  uint32 Extern;
  uint32 External;
  uint32 Factory;
  uint32 Fallthrough;
  uint32 False;
  uint32 Fidl;
  uint32 FidlType;
  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 HasInvalidTag;
  uint32 HashCode;
  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 NoSuchMethod;
  uint32 Noexcept;
  uint32 None;
  uint32 Not;
  uint32 NotEq;
  uint32 Null;
  uint32 Nullptr;
  uint32 Num;
  uint32 Object;
  uint32 Offset;
  uint32 Offsetof;
  uint32 Ok;
  uint32 OnOpen;
  uint32 Operator;
  uint32 Option;
  uint32 Or;
  uint32 OrEq;
  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 ReinterpretCast;
  uint32 Requires;
  uint32 Result;
  uint32 Rethrow;
  uint32 Return;
  uint32 Rhs;
  uint32 Rune;
  uint32 RuntimeType;
  uint32 Select;
  uint32 Self;
  uint32 Send;
  uint32 Set;
  uint32 SetController;
  uint32 Short;
  uint32 Signed;
  uint32 Sizeof;
  uint32 Some;
  uint32 Static;
  uint32 StaticAssert;
  uint32 StaticCast;
  uint32 Stream;
  uint32 String;
  uint32 Struct;
  uint32 Stub;
  uint32 Super;
  uint32 Switch;
  uint32 Synchronized;
  uint32 Template;
  uint32 This;
  uint32 ThreadLocal;
  uint32 Throw;
  uint32 ToString;
  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 ValueOf;
  uint32 ValueUnion;
  uint32 ValuesMap;
  uint32 Var;
  uint32 Vec;
  uint32 Virtual;
  uint32 Void;
  uint32 Volatile;
  uint32 WcharT;
  uint32 Where;
  uint32 Which;
  uint32 While;
  uint32 With;
  uint32 Xor;
  uint32 XorEq;
  uint32 Xunion;
  uint32 Yield;
  uint32 Zx;
};
