From 03b04e5363c864432db139b0beb25c8804c2ee70 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 7 Oct 2015 12:21:59 +0200 Subject: [PATCH 1/2] Add support for documenting CGAbstractMethods. --- .../script/dom/bindings/codegen/CodegenRust.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 49c0cf52cbcf..910f14318978 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -2064,10 +2064,12 @@ class CGAbstractMethod(CGThing): If templateArgs is not None it should be a list of strings containing template arguments, and the function will be templatized using those arguments. + + docs is None or documentation for the method in a string. """ def __init__(self, descriptor, name, returnType, args, inline=False, alwaysInline=False, extern=False, pub=False, templateArgs=None, - unsafe=False): + unsafe=False, docs=None): CGThing.__init__(self) self.descriptor = descriptor self.name = name @@ -2078,6 +2080,7 @@ def __init__(self, descriptor, name, returnType, args, inline=False, self.templateArgs = templateArgs self.pub = pub self.unsafe = unsafe + self.docs = docs def _argstring(self): return ', '.join([a.declare() for a in self.args]) @@ -2087,6 +2090,13 @@ def _template(self): return '' return '<%s>\n' % ', '.join(self.templateArgs) + def _docs(self): + if self.docs is None: + return '' + + lines = self.docs.splitlines() + return ''.join('/// %s\n' % line for line in lines) + def _decorators(self): decorators = [] if self.alwaysInline: @@ -2118,8 +2128,9 @@ def define(self): post=self.definition_epilogue()).define() def definition_prologue(self): - return "%sfn %s%s(%s)%s {\n" % (self._decorators(), self.name, self._template(), - self._argstring(), self._returnType()) + return "%s%sfn %s%s(%s)%s {\n" % (self._docs(), self._decorators(), + self.name, self._template(), + self._argstring(), self._returnType()) def definition_epilogue(self): return "\n}\n" From 6b160c6a297073f6db7cec73383a593e6cd31b0a Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 7 Oct 2015 12:22:15 +0200 Subject: [PATCH 2/2] Document RegisterBindings::RegisterProxyHandlers. --- components/script/dom/bindings/codegen/CodegenRust.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 910f14318978..b154bbdcf5af 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4982,8 +4982,9 @@ def definition_body(self): class CGRegisterProxyHandlersMethod(CGAbstractMethod): def __init__(self, descriptors): + docs = "Create the global vtables used by the generated DOM bindings to implement JS proxies." CGAbstractMethod.__init__(self, None, 'RegisterProxyHandlers', 'void', [], - unsafe=True, pub=True) + unsafe=True, pub=True, docs=docs) self.descriptors = descriptors def definition_body(self):