@@ -147,48 +147,18 @@ def concat_multi_lines(f):
147147 print_err (lineno , line , "Trailing backslash at the end of the file" )
148148
149149
150- def get_known_directive_names ():
151- def filter_line (line ):
152- line = line .strip ()
153- return line .startswith ('"' ) and (line .endswith ('",' ) or line .endswith ('"' ))
154-
155- # Equivalent to `src/tools/compiletest/src/header.rs` constant of the same name.
156- with open (
157- os .path .join (
158- # We go back to `src`.
159- os .path .dirname (os .path .dirname (__file__ )),
160- "tools/compiletest/src/directive-list.rs" ,
161- ),
162- "r" ,
163- encoding = "utf8" ,
164- ) as fd :
165- content = fd .read ()
166- return [
167- line .strip ().replace ('",' , "" ).replace ('"' , "" )
168- for line in content .split ("\n " )
169- if filter_line (line )
170- ]
171-
172-
173- # To prevent duplicating the list of commmands between `compiletest` and `htmldocck`, we put
174- # it into a common file which is included in rust code and parsed here.
175- # FIXME: This setup is temporary until we figure out how to improve this situation.
176- # See <https://github.com/rust-lang/rust/issues/125813#issuecomment-2141953780>.
177- KNOWN_DIRECTIVE_NAMES = get_known_directive_names ()
178-
179150LINE_PATTERN = re .compile (
180151 r"""
181152 //@\s+
182- (?P<negated>!?)(?P<cmd>[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)
153+ (?P<negated>!?)(?P<cmd>.+?)
154+ [\s:]
183155 (?P<args>.*)$
184156""" ,
185157 re .X | re .UNICODE ,
186158)
187159
188160DEPRECATED_LINE_PATTERN = re .compile (
189- r"""
190- //\s+@
191- """ ,
161+ r"//\s+@" ,
192162 re .X | re .UNICODE ,
193163)
194164
@@ -209,12 +179,7 @@ def get_commands(template):
209179
210180 cmd = m .group ("cmd" )
211181 negated = m .group ("negated" ) == "!"
212- if not negated and cmd in KNOWN_DIRECTIVE_NAMES :
213- continue
214182 args = m .group ("args" )
215- if args and not args [:1 ].isspace ():
216- print_err (lineno , line , "Invalid template syntax" )
217- continue
218183 try :
219184 args = shlex .split (args )
220185 except UnicodeEncodeError :
@@ -632,14 +597,10 @@ def check_command(c, cache):
632597 else :
633598 raise InvalidCheck ("Invalid number of {} arguments" .format (c .cmd ))
634599
635- elif c .cmd == "valid-html" :
636- raise InvalidCheck ("Unimplemented valid-html" )
637-
638- elif c .cmd == "valid-links" :
639- raise InvalidCheck ("Unimplemented valid-links" )
640-
641600 else :
642- raise InvalidCheck ("Unrecognized {}" .format (c .cmd ))
601+ # Ignore unknown directives, they might be compiletest directives.
602+ # In any case, compiletest rejects unknown directives for us.
603+ return
643604
644605 if ret == c .negated :
645606 raise FailedCheck (cerr )
0 commit comments