1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "VariableDeclaration", 6 "declarations": [ 7 { 8 "type": "VariableDeclarator", 9 "id": { 10 "type": "Identifier", 11 "name": "a", 12 "typeAnnotation": { 13 "type": "TSNumberKeyword", 14 "loc": { 15 "start": { 16 "line": 17, 17 "column": 8, 18 "program": "test-ts-non-null-expression.ts" 19 }, 20 "end": { 21 "line": 17, 22 "column": 14, 23 "program": "test-ts-non-null-expression.ts" 24 } 25 } 26 }, 27 "decorators": [], 28 "loc": { 29 "start": { 30 "line": 17, 31 "column": 5, 32 "program": "test-ts-non-null-expression.ts" 33 }, 34 "end": { 35 "line": 17, 36 "column": 6, 37 "program": "test-ts-non-null-expression.ts" 38 } 39 } 40 }, 41 "init": { 42 "type": "NumberLiteral", 43 "value": 1, 44 "loc": { 45 "start": { 46 "line": 17, 47 "column": 17, 48 "program": "test-ts-non-null-expression.ts" 49 }, 50 "end": { 51 "line": 17, 52 "column": 18, 53 "program": "test-ts-non-null-expression.ts" 54 } 55 } 56 }, 57 "loc": { 58 "start": { 59 "line": 17, 60 "column": 5, 61 "program": "test-ts-non-null-expression.ts" 62 }, 63 "end": { 64 "line": 17, 65 "column": 18, 66 "program": "test-ts-non-null-expression.ts" 67 } 68 } 69 } 70 ], 71 "kind": "var", 72 "loc": { 73 "start": { 74 "line": 17, 75 "column": 1, 76 "program": "test-ts-non-null-expression.ts" 77 }, 78 "end": { 79 "line": 17, 80 "column": 19, 81 "program": "test-ts-non-null-expression.ts" 82 } 83 } 84 }, 85 { 86 "type": "ExpressionStatement", 87 "expression": { 88 "type": "UpdateExpression", 89 "operator": "++", 90 "prefix": false, 91 "argument": { 92 "type": "TSNonNullExpression", 93 "expression": { 94 "type": "Identifier", 95 "name": "a", 96 "decorators": [], 97 "loc": { 98 "start": { 99 "line": 18, 100 "column": 1, 101 "program": "test-ts-non-null-expression.ts" 102 }, 103 "end": { 104 "line": 18, 105 "column": 2, 106 "program": "test-ts-non-null-expression.ts" 107 } 108 } 109 }, 110 "loc": { 111 "start": { 112 "line": 18, 113 "column": 1, 114 "program": "test-ts-non-null-expression.ts" 115 }, 116 "end": { 117 "line": 18, 118 "column": 3, 119 "program": "test-ts-non-null-expression.ts" 120 } 121 } 122 }, 123 "loc": { 124 "start": { 125 "line": 18, 126 "column": 1, 127 "program": "test-ts-non-null-expression.ts" 128 }, 129 "end": { 130 "line": 18, 131 "column": 5, 132 "program": "test-ts-non-null-expression.ts" 133 } 134 } 135 }, 136 "loc": { 137 "start": { 138 "line": 18, 139 "column": 1, 140 "program": "test-ts-non-null-expression.ts" 141 }, 142 "end": { 143 "line": 18, 144 "column": 6, 145 "program": "test-ts-non-null-expression.ts" 146 } 147 } 148 }, 149 { 150 "type": "ExpressionStatement", 151 "expression": { 152 "type": "UpdateExpression", 153 "operator": "--", 154 "prefix": false, 155 "argument": { 156 "type": "TSNonNullExpression", 157 "expression": { 158 "type": "Identifier", 159 "name": "a", 160 "decorators": [], 161 "loc": { 162 "start": { 163 "line": 19, 164 "column": 1, 165 "program": "test-ts-non-null-expression.ts" 166 }, 167 "end": { 168 "line": 19, 169 "column": 2, 170 "program": "test-ts-non-null-expression.ts" 171 } 172 } 173 }, 174 "loc": { 175 "start": { 176 "line": 19, 177 "column": 1, 178 "program": "test-ts-non-null-expression.ts" 179 }, 180 "end": { 181 "line": 19, 182 "column": 3, 183 "program": "test-ts-non-null-expression.ts" 184 } 185 } 186 }, 187 "loc": { 188 "start": { 189 "line": 19, 190 "column": 1, 191 "program": "test-ts-non-null-expression.ts" 192 }, 193 "end": { 194 "line": 19, 195 "column": 5, 196 "program": "test-ts-non-null-expression.ts" 197 } 198 } 199 }, 200 "loc": { 201 "start": { 202 "line": 19, 203 "column": 1, 204 "program": "test-ts-non-null-expression.ts" 205 }, 206 "end": { 207 "line": 19, 208 "column": 6, 209 "program": "test-ts-non-null-expression.ts" 210 } 211 } 212 }, 213 { 214 "type": "ExpressionStatement", 215 "expression": { 216 "type": "UpdateExpression", 217 "operator": "--", 218 "prefix": true, 219 "argument": { 220 "type": "TSNonNullExpression", 221 "expression": { 222 "type": "Identifier", 223 "name": "a", 224 "decorators": [], 225 "loc": { 226 "start": { 227 "line": 20, 228 "column": 3, 229 "program": "test-ts-non-null-expression.ts" 230 }, 231 "end": { 232 "line": 20, 233 "column": 4, 234 "program": "test-ts-non-null-expression.ts" 235 } 236 } 237 }, 238 "loc": { 239 "start": { 240 "line": 20, 241 "column": 3, 242 "program": "test-ts-non-null-expression.ts" 243 }, 244 "end": { 245 "line": 20, 246 "column": 5, 247 "program": "test-ts-non-null-expression.ts" 248 } 249 } 250 }, 251 "loc": { 252 "start": { 253 "line": 20, 254 "column": 1, 255 "program": "test-ts-non-null-expression.ts" 256 }, 257 "end": { 258 "line": 20, 259 "column": 5, 260 "program": "test-ts-non-null-expression.ts" 261 } 262 } 263 }, 264 "loc": { 265 "start": { 266 "line": 20, 267 "column": 1, 268 "program": "test-ts-non-null-expression.ts" 269 }, 270 "end": { 271 "line": 20, 272 "column": 6, 273 "program": "test-ts-non-null-expression.ts" 274 } 275 } 276 }, 277 { 278 "type": "ExpressionStatement", 279 "expression": { 280 "type": "UpdateExpression", 281 "operator": "++", 282 "prefix": true, 283 "argument": { 284 "type": "TSNonNullExpression", 285 "expression": { 286 "type": "Identifier", 287 "name": "a", 288 "decorators": [], 289 "loc": { 290 "start": { 291 "line": 21, 292 "column": 3, 293 "program": "test-ts-non-null-expression.ts" 294 }, 295 "end": { 296 "line": 21, 297 "column": 4, 298 "program": "test-ts-non-null-expression.ts" 299 } 300 } 301 }, 302 "loc": { 303 "start": { 304 "line": 21, 305 "column": 3, 306 "program": "test-ts-non-null-expression.ts" 307 }, 308 "end": { 309 "line": 21, 310 "column": 5, 311 "program": "test-ts-non-null-expression.ts" 312 } 313 } 314 }, 315 "loc": { 316 "start": { 317 "line": 21, 318 "column": 1, 319 "program": "test-ts-non-null-expression.ts" 320 }, 321 "end": { 322 "line": 21, 323 "column": 5, 324 "program": "test-ts-non-null-expression.ts" 325 } 326 } 327 }, 328 "loc": { 329 "start": { 330 "line": 21, 331 "column": 1, 332 "program": "test-ts-non-null-expression.ts" 333 }, 334 "end": { 335 "line": 21, 336 "column": 6, 337 "program": "test-ts-non-null-expression.ts" 338 } 339 } 340 }, 341 { 342 "type": "ExpressionStatement", 343 "expression": { 344 "type": "AssignmentExpression", 345 "operator": "=", 346 "left": { 347 "type": "Identifier", 348 "name": "a", 349 "decorators": [], 350 "loc": { 351 "start": { 352 "line": 22, 353 "column": 1, 354 "program": "test-ts-non-null-expression.ts" 355 }, 356 "end": { 357 "line": 22, 358 "column": 2, 359 "program": "test-ts-non-null-expression.ts" 360 } 361 } 362 }, 363 "right": { 364 "type": "BinaryExpression", 365 "operator": "+", 366 "left": { 367 "type": "TSNonNullExpression", 368 "expression": { 369 "type": "Identifier", 370 "name": "a", 371 "decorators": [], 372 "loc": { 373 "start": { 374 "line": 22, 375 "column": 5, 376 "program": "test-ts-non-null-expression.ts" 377 }, 378 "end": { 379 "line": 22, 380 "column": 6, 381 "program": "test-ts-non-null-expression.ts" 382 } 383 } 384 }, 385 "loc": { 386 "start": { 387 "line": 22, 388 "column": 5, 389 "program": "test-ts-non-null-expression.ts" 390 }, 391 "end": { 392 "line": 22, 393 "column": 7, 394 "program": "test-ts-non-null-expression.ts" 395 } 396 } 397 }, 398 "right": { 399 "type": "Identifier", 400 "name": "a", 401 "decorators": [], 402 "loc": { 403 "start": { 404 "line": 22, 405 "column": 10, 406 "program": "test-ts-non-null-expression.ts" 407 }, 408 "end": { 409 "line": 22, 410 "column": 11, 411 "program": "test-ts-non-null-expression.ts" 412 } 413 } 414 }, 415 "loc": { 416 "start": { 417 "line": 22, 418 "column": 5, 419 "program": "test-ts-non-null-expression.ts" 420 }, 421 "end": { 422 "line": 22, 423 "column": 11, 424 "program": "test-ts-non-null-expression.ts" 425 } 426 } 427 }, 428 "loc": { 429 "start": { 430 "line": 22, 431 "column": 1, 432 "program": "test-ts-non-null-expression.ts" 433 }, 434 "end": { 435 "line": 22, 436 "column": 11, 437 "program": "test-ts-non-null-expression.ts" 438 } 439 } 440 }, 441 "loc": { 442 "start": { 443 "line": 22, 444 "column": 1, 445 "program": "test-ts-non-null-expression.ts" 446 }, 447 "end": { 448 "line": 22, 449 "column": 12, 450 "program": "test-ts-non-null-expression.ts" 451 } 452 } 453 } 454 ], 455 "loc": { 456 "start": { 457 "line": 1, 458 "column": 1, 459 "program": "test-ts-non-null-expression.ts" 460 }, 461 "end": { 462 "line": 22, 463 "column": 12, 464 "program": "test-ts-non-null-expression.ts" 465 } 466 } 467} 468