Skip to content

Commit 749a16d

Browse files
committed
diagnostics: show error if mapKey does not follow a '{' or ',' operator
1 parent 00a16f5 commit 749a16d

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

sample/fntest.xsl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@
88
expand-text="yes"
99
version="3.0">
1010

11-
<xsl:variable name="fn" as="map(*)" select="map {'abc': n}"/>
11+
<xsl:variable name="fn" as="map(*)" select="
12+
map {'abc': 'def': 2: 'new'}"/>
1213
</xsl:stylesheet>

src/xsltTokenDiagnostics.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,6 +1114,13 @@ export class XsltTokenDiagnostics {
11141114
break;
11151115
}
11161116
break;
1117+
case TokenLevelState.mapKey:
1118+
if (!(prevToken && prevToken.tokenType === TokenLevelState.operator
1119+
&& (prevToken.value === ',' || prevToken.value === '{') )) {
1120+
token['error'] = ErrorType.XPathUnexpected;
1121+
problemTokens.push(token);
1122+
}
1123+
break;
11171124
case TokenLevelState.operator:
11181125
let isXPathError = false;
11191126
let tv = token.value;

0 commit comments

Comments
 (0)