From c6b6d2c84ec101c858f54afc923fbddd8d671d0d Mon Sep 17 00:00:00 2001 From: Keith Yeung Date: Sun, 17 Apr 2016 17:09:37 -0400 Subject: [PATCH] Avoid generating parameter names that are Rust keywords --- components/script/dom/bindings/codegen/CodegenRust.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 57b7be5c7bb..74dff1cce9f 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -36,6 +36,13 @@ TRACE_HOOK_NAME = '_trace' CONSTRUCT_HOOK_NAME = '_constructor' HASINSTANCE_HOOK_NAME = '_hasInstance' +RUST_KEYWORDS = {"abstract", "alignof", "as", "become", "box", "break", "const", "continue", + "else", "enum", "extern", "false", "final", "fn", "for", "if", "impl", "in", + "let", "loop", "macro", "match", "mod", "move", "mut", "offsetof", "override", + "priv", "proc", "pub", "pure", "ref", "return", "static", "self", "sizeof", + "struct", "super", "true", "trait", "type", "typeof", "unsafe", "unsized", + "use", "virtual", "where", "while", "yield"} + def replaceFileIfChanged(filename, newContents): """ @@ -5247,7 +5254,7 @@ class CGDictionary(CGThing): @staticmethod def makeMemberName(name): # Can't use Rust keywords as member names. - if name == "type": + if name in RUST_KEYWORDS: return name + "_" return name