# These are keywords used in languages we support and in generated bindings.
# This list is maintained by hand and should be expanded to cover as many cases
# as we can think of.
#
# Each line is either a comment prefixed with # or a lower_camel_case identifier
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
# clone
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
empty
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
internal_tag
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
# tag
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
values_map
var
vec
virtual
void
volatile
wchar_t
where
which
while
with
xor
xor_eq
xunion
yield
zx
