// 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.method.names.upper;
protocol DangerousMethods {
  ABSTRACT();
  ALIGNAS();
  ALIGNOF();
  AND();
  AND_EQ();
  AS();
  ASM();
  ASSERT();
  ASYNC();
  ATOMIC_CANCEL();
  ATOMIC_COMMIT();
  ATOMIC_NOEXCEPT();
  AUTO();
  AWAIT();
  BECOME();
  BITAND();
  BITOR();
  BOOL();
  BOX();
  BREAK();
  BYTE();
  CASE();
  CATCH();
  CHAN();
  CHAR();
  CHAR16_T();
  CHAR32_T();
  CLASS();
  CO_AWAIT();
  CO_RETURN();
  CO_YIELD();
  CODING_TRAITS();
  COMPL();
  CONCEPT();
  CONST();
  CONST_CAST();
  CONSTEXPR();
  CONTINUE();
  CONTROLLER();
  COVARIANT();
  CRATE();
  DECLTYPE();
  DECODER();
  DEFAULT();
  DEFER();
  DEFERRED();
  DELETE();
  DO();
  DOUBLE();
  DYNAMIC();
  DYNAMIC_CAST();
  ELSE();
  ENCODER();
  ENSURE_VALUES_INSTANTIATED();
  ENUM();
  ERR();
  EXPLICIT();
  EXPORT();
  EXTENDS();
  EXTERN();
  EXTERNAL();
  FACTORY();
  FALLTHROUGH();
  FALSE();
  FIDL();
  FIDL_TYPE();
  FINAL();
  FINALLY();
  FLOAT();
  FN();
  FOR();
  FRIEND();
  FUNC();
  FUTURE();
  FUTURES();
  GET();
  GO();
  GOTO();
  HAS_INVALID_TAG();
  HASH_CODE();
  IF();
  IMPL();
  IMPLEMENTS();
  IMPORT();
  IN();
  INDEX();
  INLINE();
  INT();
  INT16();
  INT32();
  INT64();
  INT8();
  INTERFACE();
  IS();
  LET();
  LHS();
  LIBRARY();
  LIST();
  LONG();
  LOOP();
  MACRO();
  MAP();
  MATCH();
  MIXIN();
  MOD();
  MODULE();
  MOVE();
  MUT();
  MUTABLE();
  NAMESPACE();
  NEVER();
  NEW();
  NO_SUCH_METHOD();
  NOEXCEPT();
  NONE();
  NOT();
  NOT_EQ();
  NULL();
  NULLPTR();
  NUM();
  OBJECT();
  OFFSET();
  OFFSETOF();
  OK();
  ON_OPEN();
  OPERATOR();
  OPTION();
  OR();
  OR_EQ();
  OVERRIDE();
  PACKAGE();
  PART();
  PRIV();
  PRIVATE();
  PROC();
  PROTECTED();
  PROXY();
  PUB();
  PUBLIC();
  PURE();
  RANGE();
  REF();
  REGISTER();
  REINTERPRET_CAST();
  REQUIRES();
  RESULT();
  RETHROW();
  RETURN();
  RHS();
  RUNE();
  RUNTIME_TYPE();
  SELECT();
  SELF();
  SEND();
  SET();
  SET_CONTROLLER();
  SHORT();
  SIGNED();
  SIZEOF();
  SOME();
  STATIC();
  STATIC_ASSERT();
  STATIC_CAST();
  STREAM();
  STRING();
  STRUCT();
  STUB();
  SUPER();
  SWITCH();
  SYNCHRONIZED();
  TEMPLATE();
  THIS();
  THREAD_LOCAL();
  THROW();
  TO_STRING();
  TRAIT();
  TRUE();
  TRY();
  TYPE();
  TYPEDEF();
  TYPEID();
  TYPENAME();
  TYPEOF();
  UINT16();
  UINT32();
  UINT64();
  UINT8();
  UNION();
  UNSAFE();
  UNSIGNED();
  UNSIZED();
  USE();
  USING();
  VALUE();
  VALUE_OF();
  VALUE_UNION();
  VALUES_MAP();
  VAR();
  VEC();
  VIRTUAL();
  VOID();
  VOLATILE();
  WCHAR_T();
  WHERE();
  WHICH();
  WHILE();
  WITH();
  XOR();
  XOR_EQ();
  XUNION();
  YIELD();
  ZX();
};
