(locationData: FullLocationData, insertions: Insertion[])
| 151 | } |
| 152 | |
| 153 | function updateLocationData(locationData: FullLocationData, insertions: Insertion[]): FullLocationData { |
| 154 | return insertions.reduceRight((location, insertion) => { |
| 155 | return location.map((entry, opcodeIndex) => { |
| 156 | const currentLineNumber = getDisplayLine(location[opcodeIndex]); |
| 157 | const updatedLineNumber = getUpdatedLineNumber(currentLineNumber, insertion, opcodeIndex); |
| 158 | if (updatedLineNumber === currentLineNumber) return entry; |
| 159 | |
| 160 | return { |
| 161 | location: { |
| 162 | start: { line: updatedLineNumber, column: 0 }, |
| 163 | end: { line: updatedLineNumber, column: 0 }, |
| 164 | }, |
| 165 | positionHint: PositionHint.START, |
| 166 | }; |
| 167 | }); |
| 168 | }, locationData); |
| 169 | } |
| 170 | |
| 171 | const getUpdatedLineNumber = (currentLineNumber: number, insertion: Insertion, opcodeIndex: number): number => { |
| 172 | const newLineNumber = insertion.insertAfterLine + 1; |
no test coverage detected