Skip to content

Commit 83291f3

Browse files
authored
Merge pull request github#11157 from asgerf/js/yaml-locations
JS: fix issue with zero-column yaml locations
2 parents 07f50e2 + 694d987 commit 83291f3

File tree

12 files changed

+124
-78
lines changed

12 files changed

+124
-78
lines changed

javascript/extractor/src/com/semmle/js/extractor/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public class Main {
4141
* A version identifier that should be updated every time the extractor changes in such a way that
4242
* it may produce different tuples for the same file under the same {@link ExtractorConfig}.
4343
*/
44-
public static final String EXTRACTOR_VERSION = "2022-09-19";
44+
public static final String EXTRACTOR_VERSION = "2022-11-08";
4545

4646
public static final Pattern NEWLINE = Pattern.compile("\n");
4747

javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.semmle.util.data.StringUtil;
44
import com.semmle.util.exception.CatastrophicError;
55
import com.semmle.util.exception.UserError;
6+
import com.semmle.util.locations.LineTable;
67
import com.semmle.util.trap.TrapWriter;
78
import com.semmle.util.trap.TrapWriter.Label;
89
import com.semmle.util.trap.TrapWriter.Table;
@@ -76,8 +77,10 @@ private static enum NodeKind {
7677

7778
private final boolean tolerateParseErrors;
7879

80+
private TextualExtractor textualExtractor;
7981
private LocationManager locationManager;
8082
private TrapWriter trapWriter;
83+
private LineTable lineTable;
8184

8285
/**
8386
* The underlying SnakeYAML parser; we use the relatively low-level {@linkplain Parser} instead of
@@ -93,8 +96,16 @@ public YAMLExtractor(ExtractorConfig config) {
9396
this.tolerateParseErrors = config.isTolerateParseErrors();
9497
}
9598

99+
private LineTable getLineTable() {
100+
if (lineTable == null) {
101+
lineTable = new LineTable(this.textualExtractor.getSource());
102+
}
103+
return lineTable;
104+
}
105+
96106
@Override
97107
public LoCInfo extract(TextualExtractor textualExtractor) {
108+
this.textualExtractor = textualExtractor;
98109
locationManager = textualExtractor.getLocationManager();
99110
trapWriter = textualExtractor.getTrapwriter();
100111

@@ -253,6 +264,18 @@ private void extractLocation(Label label, Mark startMark, Mark endMark) {
253264
endLine = endMark.getLine() + 1;
254265
endColumn = endMark.getColumn();
255266

267+
// Avoid emitting column zero for non-empty locations
268+
if (endColumn == 0 && !(startLine == endLine && startColumn == endColumn)) {
269+
String source = textualExtractor.getSource();
270+
int offset = getLineTable().getOffsetFromPoint(endMark.getLine(), endMark.getColumn()) - 1;
271+
while (offset > 0 && isNewLine((int)source.charAt(offset))) {
272+
--offset;
273+
}
274+
com.semmle.util.locations.Position adjustedEndPos = getLineTable().getEndPositionFromOffset(offset);
275+
endLine = adjustedEndPos.getLine();
276+
endColumn = adjustedEndPos.getColumn();
277+
}
278+
256279
locationManager.emitSnippetLocation(label, startLine, startColumn, endLine, endColumn);
257280
}
258281
}

javascript/extractor/tests/yaml/output/trap/cyclic.yaml.trap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ yaml(#20006,3,#20003,-1,"","*cyc")
2828
locations_default(#20007,#10000,3,15,3,18)
2929
yaml_locations(#20006,#20007)
3030
yaml(#20003,1,#20000,-1,"tag:yaml.org,2002:map","&cyc")
31-
#20008=@"loc,{#10000},2,9,4,0"
32-
locations_default(#20008,#10000,2,9,4,0)
31+
#20008=@"loc,{#10000},2,9,3,19"
32+
locations_default(#20008,#10000,2,9,3,19)
3333
yaml_locations(#20003,#20008)
3434
yaml(#20000,1,#10000,0,"tag:yaml.org,2002:map","cyclic: &cyc")
35-
#20009=@"loc,{#10000},2,1,4,0"
36-
locations_default(#20009,#10000,2,1,4,0)
35+
#20009=@"loc,{#10000},2,1,3,19"
36+
locations_default(#20009,#10000,2,1,3,19)
3737
yaml_locations(#20000,#20009)
3838
numlines(#10000,3,0,0)
3939
filetype(#10000,"yaml")

javascript/extractor/tests/yaml/output/trap/orig.yml.trap

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ yaml(#20008,0,#20007,0,"tag:yaml.org,2002:str","xx [[ "" ... xxx; xx")
3333
locations_default(#20009,#10000,4,5,4,102)
3434
yaml_locations(#20008,#20009)
3535
yaml(#20007,2,#20000,-2,"tag:yaml.org,2002:seq","- xx [[ ... xxx; xx")
36-
#20010=@"loc,{#10000},4,3,6,0"
37-
locations_default(#20010,#10000,4,3,6,0)
36+
#20010=@"loc,{#10000},4,3,4,103"
37+
locations_default(#20010,#10000,4,3,4,103)
3838
yaml_locations(#20007,#20010)
3939
#20011=*
4040
yaml_scalars(#20011,0,"xxxxxx")
@@ -88,16 +88,16 @@ yaml(#20028,0,#20017,-3,"tag:yaml.org,2002:str","xxxxxx")
8888
locations_default(#20029,#10000,10,13,10,18)
8989
yaml_locations(#20028,#20029)
9090
yaml(#20017,1,#20016,0,"tag:yaml.org,2002:map","xx: xxxxx")
91-
#20030=@"loc,{#10000},8,7,14,0"
92-
locations_default(#20030,#10000,8,7,14,0)
91+
#20030=@"loc,{#10000},8,7,12,27"
92+
locations_default(#20030,#10000,8,7,12,27)
9393
yaml_locations(#20017,#20030)
9494
yaml(#20016,2,#20013,-1,"tag:yaml.org,2002:seq","- xx: xxxxx")
95-
#20031=@"loc,{#10000},8,5,14,0"
96-
locations_default(#20031,#10000,8,5,14,0)
95+
#20031=@"loc,{#10000},8,5,12,27"
96+
locations_default(#20031,#10000,8,5,12,27)
9797
yaml_locations(#20016,#20031)
9898
yaml(#20013,1,#20000,-3,"tag:yaml.org,2002:map","xxxxxxx:")
99-
#20032=@"loc,{#10000},7,3,14,0"
100-
locations_default(#20032,#10000,7,3,14,0)
99+
#20032=@"loc,{#10000},7,3,12,27"
100+
locations_default(#20032,#10000,7,3,12,27)
101101
yaml_locations(#20013,#20032)
102102
#20033=*
103103
yaml_scalars(#20033,0,"xxxxx")
@@ -120,12 +120,12 @@ yaml(#20039,0,#20038,0,"tag:yaml.org,2002:str","xxxx_xxxxxxx")
120120
locations_default(#20040,#10000,16,7,16,18)
121121
yaml_locations(#20039,#20040)
122122
yaml(#20038,2,#20035,-1,"tag:yaml.org,2002:seq","- xxxx_xxxxxxx")
123-
#20041=@"loc,{#10000},16,5,18,0"
124-
locations_default(#20041,#10000,16,5,18,0)
123+
#20041=@"loc,{#10000},16,5,16,19"
124+
locations_default(#20041,#10000,16,5,16,19)
125125
yaml_locations(#20038,#20041)
126126
yaml(#20035,1,#20000,-4,"tag:yaml.org,2002:map","xxxxxxxxxxx:")
127-
#20042=@"loc,{#10000},15,3,18,0"
128-
locations_default(#20042,#10000,15,3,18,0)
127+
#20042=@"loc,{#10000},15,3,16,19"
128+
locations_default(#20042,#10000,15,3,16,19)
129129
yaml_locations(#20035,#20042)
130130
#20043=*
131131
yaml_scalars(#20043,0,"xxxxxx")
@@ -171,8 +171,8 @@ yaml(#20056,0,#20045,-3,"tag:yaml.org,2002:str","xxx xxx xxxx")
171171
locations_default(#20057,#10000,21,11,21,22)
172172
yaml_locations(#20056,#20057)
173173
yaml(#20045,1,#20000,-5,"tag:yaml.org,2002:map","xxxx_xxxxxxx: xxxx")
174-
#20058=@"loc,{#10000},19,3,23,0"
175-
locations_default(#20058,#10000,19,3,23,0)
174+
#20058=@"loc,{#10000},19,3,21,23"
175+
locations_default(#20058,#10000,19,3,21,23)
176176
yaml_locations(#20045,#20058)
177177
#20059=*
178178
yaml_scalars(#20059,0,"xxx")
@@ -201,16 +201,16 @@ yaml(#20067,0,#20064,-1,"tag:yaml.org,2002:str","xxxxxxx ... xxxxxx=")
201201
locations_default(#20068,#10000,26,13,26,696)
202202
yaml_locations(#20067,#20068)
203203
yaml(#20064,1,#20061,-1,"tag:yaml.org,2002:map","xxxxxx: ... xxxxxx=")
204-
#20069=@"loc,{#10000},26,5,27,0"
205-
locations_default(#20069,#10000,26,5,27,0)
204+
#20069=@"loc,{#10000},26,5,26,697"
205+
locations_default(#20069,#10000,26,5,26,697)
206206
yaml_locations(#20064,#20069)
207207
yaml(#20061,1,#20000,-6,"tag:yaml.org,2002:map","xxxxxx:")
208-
#20070=@"loc,{#10000},24,3,27,0"
209-
locations_default(#20070,#10000,24,3,27,0)
208+
#20070=@"loc,{#10000},24,3,26,697"
209+
locations_default(#20070,#10000,24,3,26,697)
210210
yaml_locations(#20061,#20070)
211211
yaml(#20000,1,#10000,0,"tag:yaml.org,2002:map","xxxxxxxx: xxxx_xx")
212-
#20071=@"loc,{#10000},1,1,27,0"
213-
locations_default(#20071,#10000,1,1,27,0)
212+
#20071=@"loc,{#10000},1,1,26,697"
213+
locations_default(#20071,#10000,1,1,26,697)
214214
yaml_locations(#20000,#20071)
215215
numlines(#10000,26,0,0)
216216
filetype(#10000,"yaml")

javascript/extractor/tests/yaml/output/trap/tst.yml.trap

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ yaml(#20018,0,#20011,-2,"tag:yaml.org,2002:str","Gale")
6363
locations_default(#20019,#10000,6,14,6,17)
6464
yaml_locations(#20018,#20019)
6565
yaml(#20011,1,#20000,-3,"tag:yaml.org,2002:map","given: Dorothy")
66-
#20020=@"loc,{#10000},5,5,8,0"
67-
locations_default(#20020,#10000,5,5,8,0)
66+
#20020=@"loc,{#10000},5,5,6,18"
67+
locations_default(#20020,#10000,5,5,6,18)
6868
yaml_locations(#20011,#20020)
6969
#20021=*
7070
yaml_scalars(#20021,0,"items")
@@ -188,12 +188,12 @@ yaml(#20061,0,#20042,-5,"tag:yaml.org,2002:int","1")
188188
locations_default(#20062,#10000,18,18,18,18)
189189
yaml_locations(#20061,#20062)
190190
yaml(#20042,1,#20023,1,"tag:yaml.org,2002:map","part_no: E1628")
191-
#20063=@"loc,{#10000},14,7,20,0"
192-
locations_default(#20063,#10000,14,7,20,0)
191+
#20063=@"loc,{#10000},14,7,18,19"
192+
locations_default(#20063,#10000,14,7,18,19)
193193
yaml_locations(#20042,#20063)
194194
yaml(#20023,2,#20000,-4,"tag:yaml.org,2002:seq","- part_no: A4786")
195-
#20064=@"loc,{#10000},9,5,20,0"
196-
locations_default(#20064,#10000,9,5,20,0)
195+
#20064=@"loc,{#10000},9,5,18,19"
196+
locations_default(#20064,#10000,9,5,18,19)
197197
yaml_locations(#20023,#20064)
198198
#20065=*
199199
yaml_scalars(#20065,0,"bill-to")
@@ -214,8 +214,8 @@ yaml_scalars(#20070,124,"123 Tornado Alley
214214
Suite 16
215215
")
216216
yaml(#20070,0,#20067,-1,"tag:yaml.org,2002:str","|")
217-
#20071=@"loc,{#10000},21,13,24,0"
218-
locations_default(#20071,#10000,21,13,24,0)
217+
#20071=@"loc,{#10000},21,13,23,21"
218+
locations_default(#20071,#10000,21,13,23,21)
219219
yaml_locations(#20070,#20071)
220220
#20072=*
221221
yaml_scalars(#20072,0,"city")
@@ -242,8 +242,8 @@ yaml(#20078,0,#20067,-3,"tag:yaml.org,2002:str","KS")
242242
locations_default(#20079,#10000,25,13,25,14)
243243
yaml_locations(#20078,#20079)
244244
yaml(#20067,1,#20000,-5,"tag:yaml.org,2002:map","&id001")
245-
#20080=@"loc,{#10000},20,11,27,0"
246-
locations_default(#20080,#10000,20,11,27,0)
245+
#20080=@"loc,{#10000},20,11,25,15"
246+
locations_default(#20080,#10000,20,11,25,15)
247247
yaml_locations(#20067,#20080)
248248
#20081=*
249249
yaml_scalars(#20081,0,"ship-to")
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
category: fix
3+
---
4+
* Fixed an issue with multi-line strings in YAML files being associated with an invalid location,
5+
causing alerts related to such strings to appear at the top of the YAML file.

javascript/ql/test/library-tests/ESLint/ESLintGlobal.expected

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
| sub/.eslintrc.json:2:14:5:3 | {\\n ... lse\\n } | aNonWritableGlobal | false | sub/tst.js:1:1:1:15 | aWritableGlobal |
33
| sub/.eslintrc.json:2:14:5:3 | {\\n ... lse\\n } | aWritableGlobal | true | sub/subsub/tst.js:1:1:1:15 | aWritableGlobal |
44
| sub/.eslintrc.json:2:14:5:3 | {\\n ... lse\\n } | aWritableGlobal | true | sub/tst.js:1:1:1:15 | aWritableGlobal |
5-
| sub/.eslintrc.yml:3:5:6:0 | aWritab ... l: true | aNonWritableGlobal | false | sub/subsub/tst.js:1:1:1:15 | aWritableGlobal |
6-
| sub/.eslintrc.yml:3:5:6:0 | aWritab ... l: true | aNonWritableGlobal | false | sub/tst.js:1:1:1:15 | aWritableGlobal |
7-
| sub/.eslintrc.yml:3:5:6:0 | aWritab ... l: true | aWritableGlobal | true | sub/subsub/tst.js:1:1:1:15 | aWritableGlobal |
8-
| sub/.eslintrc.yml:3:5:6:0 | aWritab ... l: true | aWritableGlobal | true | sub/tst.js:1:1:1:15 | aWritableGlobal |
5+
| sub/.eslintrc.yml:3:5:4:30 | aWritab ... l: true | aNonWritableGlobal | false | sub/subsub/tst.js:1:1:1:15 | aWritableGlobal |
6+
| sub/.eslintrc.yml:3:5:4:30 | aWritab ... l: true | aNonWritableGlobal | false | sub/tst.js:1:1:1:15 | aWritableGlobal |
7+
| sub/.eslintrc.yml:3:5:4:30 | aWritab ... l: true | aWritableGlobal | true | sub/subsub/tst.js:1:1:1:15 | aWritableGlobal |
8+
| sub/.eslintrc.yml:3:5:4:30 | aWritab ... l: true | aWritableGlobal | true | sub/tst.js:1:1:1:15 | aWritableGlobal |
99
| sub/package.json:5:20:8:9 | {\\n ... } | aNonWritableGlobal | false | sub/subsub/tst.js:1:1:1:15 | aWritableGlobal |
1010
| sub/package.json:5:20:8:9 | {\\n ... } | aNonWritableGlobal | false | sub/tst.js:1:1:1:15 | aWritableGlobal |
1111
| sub/package.json:5:20:8:9 | {\\n ... } | aWritableGlobal | true | sub/subsub/tst.js:1:1:1:15 | aWritableGlobal |

javascript/ql/test/library-tests/YAML/printAst.expected

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ nodes
3030
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | semmle.label | [YamlSequence] - "name ... Knopf" |
3131
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | semmle.order | 3 |
3232
| tst.yml:1:3:1:8 | [YamlScalar] "name" | semmle.label | [YamlScalar] "name" |
33-
| tst.yml:1:3:7:0 | [YamlMapping] "name": "Jim Knopf" | semmle.label | [YamlMapping] "name": "Jim Knopf" |
33+
| tst.yml:1:3:6:4 | [YamlMapping] "name": "Jim Knopf" | semmle.label | [YamlMapping] "name": "Jim Knopf" |
3434
| tst.yml:1:11:1:21 | [YamlScalar] "Jim Knopf" | semmle.label | [YamlScalar] "Jim Knopf" |
3535
| tst.yml:2:3:2:9 | [YamlScalar] address | semmle.label | [YamlScalar] address |
3636
| tst.yml:2:12:6:3 | [YamlMapping] { | semmle.label | [YamlMapping] { |
@@ -41,12 +41,12 @@ nodes
4141
| tst.yml:5:5:5:13 | [YamlScalar] "country" | semmle.label | [YamlScalar] "country" |
4242
| tst.yml:5:16:5:27 | [YamlScalar] "Lummerland" | semmle.label | [YamlScalar] "Lummerland" |
4343
| tst.yml:7:3:7:6 | [YamlScalar] name | semmle.label | [YamlScalar] name |
44-
| tst.yml:7:3:14:0 | [YamlMapping] name: Frau Mahlzahn | semmle.label | [YamlMapping] name: Frau Mahlzahn |
44+
| tst.yml:7:3:13:19 | [YamlMapping] name: Frau Mahlzahn | semmle.label | [YamlMapping] name: Frau Mahlzahn |
4545
| tst.yml:7:9:7:21 | [YamlScalar] Frau Mahlzahn | semmle.label | [YamlScalar] Frau Mahlzahn |
4646
| tst.yml:8:3:8:9 | [YamlScalar] address | semmle.label | [YamlScalar] address |
4747
| tst.yml:9:5:9:10 | [YamlScalar] street | semmle.label | [YamlScalar] street |
48-
| tst.yml:9:5:14:0 | [YamlMapping] street: \| | semmle.label | [YamlMapping] street: \| |
49-
| tst.yml:9:13:11:0 | [YamlScalar] \| | semmle.label | [YamlScalar] \| |
48+
| tst.yml:9:5:13:19 | [YamlMapping] street: \| | semmle.label | [YamlMapping] street: \| |
49+
| tst.yml:9:13:10:21 | [YamlScalar] \| | semmle.label | [YamlScalar] \| |
5050
| tst.yml:11:5:11:10 | [YamlScalar] number | semmle.label | [YamlScalar] number |
5151
| tst.yml:11:13:11:15 | [YamlScalar] 133 | semmle.label | [YamlScalar] 133 |
5252
| tst.yml:12:5:12:11 | [YamlScalar] country | semmle.label | [YamlScalar] country |
@@ -67,8 +67,8 @@ edges
6767
| file://:0:0:0:0 | (Mapping 0) street: | tst.yml:3:14:3:13 | [YamlScalar] | semmle.order | 1 |
6868
| file://:0:0:0:0 | (Mapping 0) street: | tst.yml:9:5:9:10 | [YamlScalar] street | semmle.label | 0 |
6969
| file://:0:0:0:0 | (Mapping 0) street: | tst.yml:9:5:9:10 | [YamlScalar] street | semmle.order | 0 |
70-
| file://:0:0:0:0 | (Mapping 0) street: | tst.yml:9:13:11:0 | [YamlScalar] \| | semmle.label | 1 |
71-
| file://:0:0:0:0 | (Mapping 0) street: | tst.yml:9:13:11:0 | [YamlScalar] \| | semmle.order | 1 |
70+
| file://:0:0:0:0 | (Mapping 0) street: | tst.yml:9:13:10:21 | [YamlScalar] \| | semmle.label | 1 |
71+
| file://:0:0:0:0 | (Mapping 0) street: | tst.yml:9:13:10:21 | [YamlScalar] \| | semmle.order | 1 |
7272
| file://:0:0:0:0 | (Mapping 0) x: | merge.yaml:1:8:1:8 | [YamlScalar] x | semmle.label | 0 |
7373
| file://:0:0:0:0 | (Mapping 0) x: | merge.yaml:1:8:1:8 | [YamlScalar] x | semmle.order | 0 |
7474
| file://:0:0:0:0 | (Mapping 0) x: | merge.yaml:1:11:1:12 | [YamlScalar] 23 | semmle.label | 1 |
@@ -87,8 +87,8 @@ edges
8787
| file://:0:0:0:0 | (Mapping 1) address: | tst.yml:2:12:6:3 | [YamlMapping] { | semmle.order | 1 |
8888
| file://:0:0:0:0 | (Mapping 1) address: | tst.yml:8:3:8:9 | [YamlScalar] address | semmle.label | 0 |
8989
| file://:0:0:0:0 | (Mapping 1) address: | tst.yml:8:3:8:9 | [YamlScalar] address | semmle.order | 0 |
90-
| file://:0:0:0:0 | (Mapping 1) address: | tst.yml:9:5:14:0 | [YamlMapping] street: \| | semmle.label | 1 |
91-
| file://:0:0:0:0 | (Mapping 1) address: | tst.yml:9:5:14:0 | [YamlMapping] street: \| | semmle.order | 1 |
90+
| file://:0:0:0:0 | (Mapping 1) address: | tst.yml:9:5:13:19 | [YamlMapping] street: \| | semmle.label | 1 |
91+
| file://:0:0:0:0 | (Mapping 1) address: | tst.yml:9:5:13:19 | [YamlMapping] street: \| | semmle.order | 1 |
9292
| file://:0:0:0:0 | (Mapping 1) number: | tst.yml:4:5:4:12 | [YamlScalar] "number" | semmle.label | 0 |
9393
| file://:0:0:0:0 | (Mapping 1) number: | tst.yml:4:5:4:12 | [YamlScalar] "number" | semmle.order | 0 |
9494
| file://:0:0:0:0 | (Mapping 1) number: | tst.yml:4:15:4:16 | [YamlScalar] -1 | semmle.label | 1 |
@@ -121,31 +121,31 @@ edges
121121
| merge.yaml:2:3:3:8 | [YamlMapping] x: 56 | file://:0:0:0:0 | (Mapping 0) x: | semmle.order | 0 |
122122
| merge.yaml:2:3:3:8 | [YamlMapping] x: 56 | file://:0:0:0:0 | (Mapping 1) <<: | semmle.label | 1 |
123123
| merge.yaml:2:3:3:8 | [YamlMapping] x: 56 | file://:0:0:0:0 | (Mapping 1) <<: | semmle.order | 1 |
124-
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:1:3:7:0 | [YamlMapping] "name": "Jim Knopf" | semmle.label | 0 |
125-
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:1:3:7:0 | [YamlMapping] "name": "Jim Knopf" | semmle.order | 0 |
126-
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:7:3:14:0 | [YamlMapping] name: Frau Mahlzahn | semmle.label | 1 |
127-
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:7:3:14:0 | [YamlMapping] name: Frau Mahlzahn | semmle.order | 1 |
124+
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:1:3:6:4 | [YamlMapping] "name": "Jim Knopf" | semmle.label | 0 |
125+
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:1:3:6:4 | [YamlMapping] "name": "Jim Knopf" | semmle.order | 0 |
126+
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:7:3:13:19 | [YamlMapping] name: Frau Mahlzahn | semmle.label | 1 |
127+
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:7:3:13:19 | [YamlMapping] name: Frau Mahlzahn | semmle.order | 1 |
128128
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:14:3:14:23 | [YamlScalar] !includ ... nal.yml | semmle.label | 2 |
129129
| tst.yml:1:1:14:23 | [YamlSequence] - "name ... Knopf" | tst.yml:14:3:14:23 | [YamlScalar] !includ ... nal.yml | semmle.order | 2 |
130-
| tst.yml:1:3:7:0 | [YamlMapping] "name": "Jim Knopf" | file://:0:0:0:0 | (Mapping 0) name: | semmle.label | 0 |
131-
| tst.yml:1:3:7:0 | [YamlMapping] "name": "Jim Knopf" | file://:0:0:0:0 | (Mapping 0) name: | semmle.order | 0 |
132-
| tst.yml:1:3:7:0 | [YamlMapping] "name": "Jim Knopf" | file://:0:0:0:0 | (Mapping 1) address: | semmle.label | 1 |
133-
| tst.yml:1:3:7:0 | [YamlMapping] "name": "Jim Knopf" | file://:0:0:0:0 | (Mapping 1) address: | semmle.order | 1 |
130+
| tst.yml:1:3:6:4 | [YamlMapping] "name": "Jim Knopf" | file://:0:0:0:0 | (Mapping 0) name: | semmle.label | 0 |
131+
| tst.yml:1:3:6:4 | [YamlMapping] "name": "Jim Knopf" | file://:0:0:0:0 | (Mapping 0) name: | semmle.order | 0 |
132+
| tst.yml:1:3:6:4 | [YamlMapping] "name": "Jim Knopf" | file://:0:0:0:0 | (Mapping 1) address: | semmle.label | 1 |
133+
| tst.yml:1:3:6:4 | [YamlMapping] "name": "Jim Knopf" | file://:0:0:0:0 | (Mapping 1) address: | semmle.order | 1 |
134134
| tst.yml:2:12:6:3 | [YamlMapping] { | file://:0:0:0:0 | (Mapping 0) street: | semmle.label | 0 |
135135
| tst.yml:2:12:6:3 | [YamlMapping] { | file://:0:0:0:0 | (Mapping 0) street: | semmle.order | 0 |
136136
| tst.yml:2:12:6:3 | [YamlMapping] { | file://:0:0:0:0 | (Mapping 1) number: | semmle.label | 1 |
137137
| tst.yml:2:12:6:3 | [YamlMapping] { | file://:0:0:0:0 | (Mapping 1) number: | semmle.order | 1 |
138138
| tst.yml:2:12:6:3 | [YamlMapping] { | file://:0:0:0:0 | (Mapping 2) country: | semmle.label | 2 |
139139
| tst.yml:2:12:6:3 | [YamlMapping] { | file://:0:0:0:0 | (Mapping 2) country: | semmle.order | 2 |
140-
| tst.yml:7:3:14:0 | [YamlMapping] name: Frau Mahlzahn | file://:0:0:0:0 | (Mapping 0) name: | semmle.label | 0 |
141-
| tst.yml:7:3:14:0 | [YamlMapping] name: Frau Mahlzahn | file://:0:0:0:0 | (Mapping 0) name: | semmle.order | 0 |
142-
| tst.yml:7:3:14:0 | [YamlMapping] name: Frau Mahlzahn | file://:0:0:0:0 | (Mapping 1) address: | semmle.label | 1 |
143-
| tst.yml:7:3:14:0 | [YamlMapping] name: Frau Mahlzahn | file://:0:0:0:0 | (Mapping 1) address: | semmle.order | 1 |
144-
| tst.yml:9:5:14:0 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 0) street: | semmle.label | 0 |
145-
| tst.yml:9:5:14:0 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 0) street: | semmle.order | 0 |
146-
| tst.yml:9:5:14:0 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 1) number: | semmle.label | 1 |
147-
| tst.yml:9:5:14:0 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 1) number: | semmle.order | 1 |
148-
| tst.yml:9:5:14:0 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 2) country: | semmle.label | 2 |
149-
| tst.yml:9:5:14:0 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 2) country: | semmle.order | 2 |
140+
| tst.yml:7:3:13:19 | [YamlMapping] name: Frau Mahlzahn | file://:0:0:0:0 | (Mapping 0) name: | semmle.label | 0 |
141+
| tst.yml:7:3:13:19 | [YamlMapping] name: Frau Mahlzahn | file://:0:0:0:0 | (Mapping 0) name: | semmle.order | 0 |
142+
| tst.yml:7:3:13:19 | [YamlMapping] name: Frau Mahlzahn | file://:0:0:0:0 | (Mapping 1) address: | semmle.label | 1 |
143+
| tst.yml:7:3:13:19 | [YamlMapping] name: Frau Mahlzahn | file://:0:0:0:0 | (Mapping 1) address: | semmle.order | 1 |
144+
| tst.yml:9:5:13:19 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 0) street: | semmle.label | 0 |
145+
| tst.yml:9:5:13:19 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 0) street: | semmle.order | 0 |
146+
| tst.yml:9:5:13:19 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 1) number: | semmle.label | 1 |
147+
| tst.yml:9:5:13:19 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 1) number: | semmle.order | 1 |
148+
| tst.yml:9:5:13:19 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 2) country: | semmle.label | 2 |
149+
| tst.yml:9:5:13:19 | [YamlMapping] street: \| | file://:0:0:0:0 | (Mapping 2) country: | semmle.order | 2 |
150150
graphProperties
151151
| semmle.graphKind | tree |

0 commit comments

Comments
 (0)