aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py44
-rw-r--r--components/script/dom/bindings/mod.rs31
-rw-r--r--components/script/dom/mod.rs5
-rw-r--r--components/script/makefile.cargo22
4 files changed, 62 insertions, 40 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 78d8b2f7f6f..aa1b1ae14d3 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1429,25 +1429,26 @@ class CGImports(CGWrapper):
"""
Generates the appropriate import/use statements.
"""
- def __init__(self, child, descriptors, callbacks, imports):
+ def __init__(self, child, descriptors, callbacks, imports, ignored_warnings=None):
"""
Adds a set of imports.
"""
- ignored_warnings = [
- # Allow unreachable_code because we use 'break' in a way that
- # sometimes produces two 'break's in a row. See for example
- # CallbackMember.getArgConversions.
- 'unreachable_code',
- 'non_camel_case_types',
- 'non_upper_case_globals',
- 'unused_parens',
- 'unused_imports',
- 'unused_variables',
- 'unused_unsafe',
- 'unused_mut',
- 'unused_assignments',
- 'dead_code',
- ]
+ if ignored_warnings is None:
+ ignored_warnings = [
+ # Allow unreachable_code because we use 'break' in a way that
+ # sometimes produces two 'break's in a row. See for example
+ # CallbackMember.getArgConversions.
+ 'unreachable_code',
+ 'non_camel_case_types',
+ 'non_upper_case_globals',
+ 'unused_parens',
+ 'unused_imports',
+ 'unused_variables',
+ 'unused_unsafe',
+ 'unused_mut',
+ 'unused_assignments',
+ 'dead_code',
+ ]
def componentTypes(type):
if type.nullable():
@@ -1496,7 +1497,9 @@ class CGImports(CGWrapper):
imports += ['dom::types::%s' % getIdentifier(t).name for t in types if isImportable(t)]
- statements = ['#![allow(%s)]' % ','.join(ignored_warnings)]
+ statements = []
+ if len(ignored_warnings) > 0:
+ statements.append('#![allow(%s)]' % ','.join(ignored_warnings))
statements.extend('use %s;' % i for i in sorted(set(imports)))
CGWrapper.__init__(self, child,
@@ -1815,7 +1818,7 @@ def UnionTypes(descriptors, dictionaries, callbacks, config):
CGUnionConversionStruct(t, provider)
])
- return CGImports(CGList(SortedDictValues(unionStructs), "\n\n"), [], [], imports)
+ return CGImports(CGList(SortedDictValues(unionStructs), "\n\n"), [], [], imports, ignored_warnings=[])
class Argument():
@@ -5415,7 +5418,7 @@ class GlobalGenRoots():
'js::jsapi::JSContext',
'js::jsapi::JSObject',
'libc',
- ])
+ ], ignored_warnings=[])
@staticmethod
def InterfaceTypes(config):
@@ -5438,8 +5441,7 @@ class GlobalGenRoots():
def InheritTypes(config):
descriptors = config.getDescriptors(register=True, isCallback=False)
- allprotos = [CGGeneric("#![allow(unused_imports)]\n"),
- CGGeneric("use dom::types::*;\n"),
+ allprotos = [CGGeneric("use dom::types::*;\n"),
CGGeneric("use dom::bindings::js::{JS, JSRef, LayoutJS, Rootable, Temporary};\n"),
CGGeneric("use dom::bindings::trace::JSTraceable;\n"),
CGGeneric("use dom::bindings::utils::Reflectable;\n"),
diff --git a/components/script/dom/bindings/mod.rs b/components/script/dom/bindings/mod.rs
index 82686d41c3f..283dc9b08c9 100644
--- a/components/script/dom/bindings/mod.rs
+++ b/components/script/dom/bindings/mod.rs
@@ -155,11 +155,30 @@ pub mod codegen {
// FIXME(#5853) we shouldn't need to
// allow moved_no_move here
#[allow(unrooted_must_root, moved_no_move)]
- pub mod Bindings;
- pub mod InterfaceTypes;
- pub mod InheritTypes;
- pub mod PrototypeList;
- pub mod RegisterBindings;
- pub mod UnionTypes;
+ pub mod Bindings {
+ include!(concat!(env!("OUT_DIR"), "/Bindings/mod.rs"));
+ }
+ pub mod InterfaceTypes {
+ include!(concat!(env!("OUT_DIR"), "/InterfaceTypes.rs"));
+ }
+ #[allow(unused_imports)]
+ pub mod InheritTypes {
+ include!(concat!(env!("OUT_DIR"), "/InheritTypes.rs"));
+ }
+ pub mod PrototypeList {
+ include!(concat!(env!("OUT_DIR"), "/PrototypeList.rs"));
+ }
+ #[allow(unreachable_code, non_camel_case_types, non_upper_case_globals, unused_parens,
+ unused_imports, unused_variables, unused_unsafe, unused_mut, unused_assignments,
+ dead_code)]
+ pub mod RegisterBindings {
+ include!(concat!(env!("OUT_DIR"), "/RegisterBindings.rs"));
+ }
+ #[allow(unreachable_code, non_camel_case_types, non_upper_case_globals, unused_parens,
+ unused_imports, unused_variables, unused_unsafe, unused_mut, unused_assignments,
+ dead_code)]
+ pub mod UnionTypes {
+ include!(concat!(env!("OUT_DIR"), "/UnionTypes.rs"));
+ }
}
diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs
index 813e7a09145..51ef5ca3c05 100644
--- a/components/script/dom/mod.rs
+++ b/components/script/dom/mod.rs
@@ -190,8 +190,9 @@ pub mod macros;
pub mod bindings;
-#[path="bindings/codegen/InterfaceTypes.rs"]
-pub mod types;
+pub mod types {
+ include!(concat!(env!("OUT_DIR"), "/InterfaceTypes.rs"));
+}
pub mod activation;
pub mod attr;
diff --git a/components/script/makefile.cargo b/components/script/makefile.cargo
index 652bcab9000..2093e12f238 100644
--- a/components/script/makefile.cargo
+++ b/components/script/makefile.cargo
@@ -8,38 +8,38 @@ BINDINGS_SRC = $(shell pwd)/dom/bindings/codegen
WEBIDLS_SRC = $(shell pwd)/dom/webidls
WEBIDLS = $(call rwildcard,$(WEBIDLS_SRC),*.webidl)
BINDINGS = $(patsubst %.webidl,%Binding.rs,$(WEBIDLS))
-AUTOGEN_SRC = $(foreach var,$(BINDINGS),$(subst $(WEBIDLS_SRC),$(BINDINGS_SRC)/Bindings,$(var)))
+AUTOGEN_SRC = $(foreach var,$(BINDINGS),$(subst $(WEBIDLS_SRC),$(OUT_DIR)/Bindings,$(var)))
-CACHE_DIR = $(BINDINGS_SRC)/_cache
+CACHE_DIR = $(OUT_DIR)/_cache
-bindinggen_dependencies := $(addprefix $(BINDINGS_SRC)/,BindingGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py ParserResults.pkl Bindings/.done)
+bindinggen_dependencies := $(addprefix $(BINDINGS_SRC)/,BindingGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py) $(OUT_DIR)/ParserResults.pkl $(OUT_DIR)/Bindings/.done
-globalgen_dependencies := $(addprefix $(BINDINGS_SRC)/,GlobalGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py) $(CACHE_DIR)/.done $(BINDINGS_SRC)/Bindings/.done
+globalgen_dependencies := $(addprefix $(BINDINGS_SRC)/,GlobalGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py) $(CACHE_DIR)/.done $(OUT_DIR)/Bindings/.done
.PHONY: all
all: $(AUTOGEN_SRC)
-$(BINDINGS_SRC)/Bindings/.done:
- mkdir -p $(BINDINGS_SRC)/Bindings
+$(OUT_DIR)/Bindings/.done:
+ mkdir -p $(OUT_DIR)/Bindings
touch $@
$(CACHE_DIR)/.done:
mkdir -p $(CACHE_DIR)
touch $@
-$(BINDINGS_SRC)/ParserResults.pkl: $(globalgen_dependencies) $(WEBIDLS)
+$(OUT_DIR)/ParserResults.pkl: $(globalgen_dependencies) $(WEBIDLS)
$(PYTHON) $(BINDINGS_SRC)/pythonpath.py \
-I$(BINDINGS_SRC)/parser -I$(BINDINGS_SRC)/ply \
- -D$(BINDINGS_SRC) \
+ -D$(OUT_DIR) \
$(BINDINGS_SRC)/GlobalGen.py $(BINDINGS_SRC)/Bindings.conf . \
--cachedir=$(CACHE_DIR) \
$(WEBIDLS)
-$(AUTOGEN_SRC): $(BINDINGS_SRC)/Bindings/%Binding.rs: $(bindinggen_dependencies) \
- $(addprefix $(WEBIDLS_SRC)/,%.webidl)
+$(AUTOGEN_SRC): $(OUT_DIR)/Bindings/%Binding.rs: $(bindinggen_dependencies) \
+ $(addprefix $(WEBIDLS_SRC)/,%.webidl)
$(PYTHON) $(BINDINGS_SRC)/pythonpath.py \
-I$(BINDINGS_SRC)/parser -I$(BINDINGS_SRC)/ply \
- -D$(BINDINGS_SRC) \
+ -D$(OUT_DIR) \
$(BINDINGS_SRC)/BindingGen.py \
$(BINDINGS_SRC)/Bindings.conf Bindings/$*Binding $(addprefix $(WEBIDLS_SRC)/,$*.webidl)
touch $@