# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
# Exceptions. See /LICENSE for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

---
Checks:
  -*, bugprone-*, -bugprone-narrowing-conversions, google-*,
  -google-readability-todo, misc-definitions-in-headers, misc-misplaced-const,
  misc-redundant-expression, misc-static-assert,
  misc-unconventional-assign-operator, misc-uniqueptr-reset-release,
  misc-unused-*, modernize-*, -modernize-avoid-c-arrays,
  -modernize-use-default-member-init, -modernize-use-emplace, performance-*,
  readability-braces-around-statements, readability-identifier-naming
WarningsAsErrors: true
CheckOptions:
  - { key: readability-identifier-naming.ClassCase, value: CamelCase }
  - {
      key: readability-identifier-naming.ConstexprVariableCase,
      value: CamelCase,
    }
  - { key: readability-identifier-naming.FunctionCase, value: CamelCase }
  - { key: readability-identifier-naming.NamespaceCase, value: CamelCase }
  - { key: readability-identifier-naming.StructCase, value: CamelCase }
  - {
      key: readability-identifier-naming.TemplateParameterCase,
      value: CamelCase,
    }
  - { key: readability-identifier-naming.TypeAliasCase, value: CamelCase }
  - { key: readability-identifier-naming.TypedefCase, value: CamelCase }
  - { key: readability-identifier-naming.UnionCase, value: CamelCase }
  - { key: readability-identifier-naming.VariableCase, value: lower_case }
  - { key: readability-identifier-naming.ParameterCase, value: lower_case }
  - { key: readability-identifier-naming.ClassMemberCase, value: lower_case }
  - {
      key: readability-identifier-naming.MethodIgnoredRegexp,
      value: '^classof$',
    }
