@@ -171,8 +171,10 @@ def mainLoop(self):
171171 ParseErrorToken = tokenTypes["ParseError"]
172172
173173 for token in self.normalizedTokens():
174+ prev_token = None
174175 new_token = token
175176 while new_token is not None:
177+ prev_token = new_token
176178 currentNode = self.tree.openElements[-1] if self.tree.openElements else None
177179 currentNodeNamespace = currentNode.namespace if currentNode else None
178180 currentNodeName = currentNode.name if currentNode else None
@@ -211,10 +213,10 @@ def mainLoop(self):
211213 elif type == DoctypeToken:
212214 new_token = phase.processDoctype(new_token)
213215
214- if (type == StartTagToken and token ["selfClosing"] and
215- not token ["selfClosingAcknowledged"]):
216+ if (type == StartTagToken and prev_token ["selfClosing"] and
217+ not prev_token ["selfClosingAcknowledged"]):
216218 self.parseError("non-void-element-with-trailing-solidus",
217- {"name": token ["name"]})
219+ {"name": prev_token ["name"]})
218220
219221 # When the loop finishes it's EOF
220222 reprocess = True
@@ -1933,6 +1935,7 @@ def processCharacters(self, token):
19331935 def startTagCol(self, token):
19341936 self.tree.insertElement(token)
19351937 self.tree.openElements.pop()
1938+ token["selfClosingAcknowledged"] = True
19361939
19371940 def startTagOther(self, token):
19381941 ignoreEndTag = self.ignoreEndTagColgroup()
0 commit comments