| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart2js.semantics_visitor; | 5 library dart2js.semantics_visitor; |
| 6 | 6 |
| 7 import '../constants/expressions.dart'; | 7 import '../constants/expressions.dart'; |
| 8 import '../dart2jslib.dart' show invariant, MessageKind; | 8 import '../dart2jslib.dart' show invariant, MessageKind; |
| 9 import '../dart_types.dart'; | 9 import '../dart_types.dart'; |
| 10 import '../elements/elements.dart'; | 10 import '../elements/elements.dart'; |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 } | 134 } |
| 135 | 135 |
| 136 // TODO(johnniwinther): Add visits for [visitLocalConstantGet], | 136 // TODO(johnniwinther): Add visits for [visitLocalConstantGet], |
| 137 // [visitLocalConstantInvoke], [visitStaticConstantGet], etc. | 137 // [visitLocalConstantInvoke], [visitStaticConstantGet], etc. |
| 138 abstract class SemanticSendVisitor<R, A> { | 138 abstract class SemanticSendVisitor<R, A> { |
| 139 R apply(Node node, A arg); | 139 R apply(Node node, A arg); |
| 140 | 140 |
| 141 /// Read of the [parameter]. | 141 /// Read of the [parameter]. |
| 142 /// | 142 /// |
| 143 /// For instance: | 143 /// For instance: |
| 144 /// |
| 144 /// m(parameter) => parameter; | 145 /// m(parameter) => parameter; |
| 145 /// | 146 /// |
| 146 R visitParameterGet( | 147 R visitParameterGet( |
| 147 Send node, | 148 Send node, |
| 148 ParameterElement parameter, | 149 ParameterElement parameter, |
| 149 A arg); | 150 A arg); |
| 150 | 151 |
| 151 /// Assignment of [rhs] to the [parameter]. | 152 /// Assignment of [rhs] to the [parameter]. |
| 152 /// | 153 /// |
| 153 /// For instance: | 154 /// For instance: |
| 155 /// |
| 154 /// m(parameter) { | 156 /// m(parameter) { |
| 155 /// parameter = rhs; | 157 /// parameter = rhs; |
| 156 /// } | 158 /// } |
| 157 /// | 159 /// |
| 158 R visitParameterSet( | 160 R visitParameterSet( |
| 159 SendSet node, | 161 SendSet node, |
| 160 ParameterElement parameter, | 162 ParameterElement parameter, |
| 161 Node rhs, | 163 Node rhs, |
| 162 A arg); | 164 A arg); |
| 163 | 165 |
| 164 /// Assignment of [rhs] to the final [parameter]. | 166 /// Assignment of [rhs] to the final [parameter]. |
| 165 /// | 167 /// |
| 166 /// For instance: | 168 /// For instance: |
| 169 /// |
| 167 /// m(final parameter) { | 170 /// m(final parameter) { |
| 168 /// parameter = rhs; | 171 /// parameter = rhs; |
| 169 /// } | 172 /// } |
| 170 /// | 173 /// |
| 171 R visitFinalParameterSet( | 174 R visitFinalParameterSet( |
| 172 SendSet node, | 175 SendSet node, |
| 173 ParameterElement parameter, | 176 ParameterElement parameter, |
| 174 Node rhs, | 177 Node rhs, |
| 175 A arg); | 178 A arg); |
| 176 | 179 |
| 177 /// Invocation of the [parameter] with [arguments]. | 180 /// Invocation of the [parameter] with [arguments]. |
| 178 /// | 181 /// |
| 179 /// For instance: | 182 /// For instance: |
| 183 /// |
| 180 /// m(parameter) { | 184 /// m(parameter) { |
| 181 /// parameter(null, 42); | 185 /// parameter(null, 42); |
| 182 /// } | 186 /// } |
| 183 /// | 187 /// |
| 184 R visitParameterInvoke( | 188 R visitParameterInvoke( |
| 185 Send node, | 189 Send node, |
| 186 ParameterElement parameter, | 190 ParameterElement parameter, |
| 187 NodeList arguments, | 191 NodeList arguments, |
| 188 CallStructure callStructure, | 192 CallStructure callStructure, |
| 189 A arg); | 193 A arg); |
| 190 | 194 |
| 191 /// Read of the local [variable]. | 195 /// Read of the local [variable]. |
| 192 /// | 196 /// |
| 193 /// For instance: | 197 /// For instance: |
| 198 /// |
| 194 /// m() { | 199 /// m() { |
| 195 /// var variable; | 200 /// var variable; |
| 196 /// return variable; | 201 /// return variable; |
| 197 /// } | 202 /// } |
| 198 /// | 203 /// |
| 199 R visitLocalVariableGet( | 204 R visitLocalVariableGet( |
| 200 Send node, | 205 Send node, |
| 201 LocalVariableElement variable, | 206 LocalVariableElement variable, |
| 202 A arg); | 207 A arg); |
| 203 | 208 |
| 204 /// Assignment of [rhs] to the local [variable]. | 209 /// Assignment of [rhs] to the local [variable]. |
| 205 /// | 210 /// |
| 206 /// For instance: | 211 /// For instance: |
| 212 /// |
| 207 /// m() { | 213 /// m() { |
| 208 /// var variable; | 214 /// var variable; |
| 209 /// variable = rhs; | 215 /// variable = rhs; |
| 210 /// } | 216 /// } |
| 211 /// | 217 /// |
| 212 R visitLocalVariableSet( | 218 R visitLocalVariableSet( |
| 213 SendSet node, | 219 SendSet node, |
| 214 LocalVariableElement variable, | 220 LocalVariableElement variable, |
| 215 Node rhs, | 221 Node rhs, |
| 216 A arg); | 222 A arg); |
| 217 | 223 |
| 218 /// Assignment of [rhs] to the final local [variable]. | 224 /// Assignment of [rhs] to the final local [variable]. |
| 219 /// | 225 /// |
| 220 /// For instance: | 226 /// For instance: |
| 227 /// |
| 221 /// m() { | 228 /// m() { |
| 222 /// final variable = null; | 229 /// final variable = null; |
| 223 /// variable = rhs; | 230 /// variable = rhs; |
| 224 /// } | 231 /// } |
| 225 /// | 232 /// |
| 226 R visitFinalLocalVariableSet( | 233 R visitFinalLocalVariableSet( |
| 227 SendSet node, | 234 SendSet node, |
| 228 LocalVariableElement variable, | 235 LocalVariableElement variable, |
| 229 Node rhs, | 236 Node rhs, |
| 230 A arg); | 237 A arg); |
| 231 | 238 |
| 232 /// Invocation of the local variable [variable] with [arguments]. | 239 /// Invocation of the local variable [variable] with [arguments]. |
| 233 /// | 240 /// |
| 234 /// For instance: | 241 /// For instance: |
| 242 /// |
| 235 /// m() { | 243 /// m() { |
| 236 /// var variable; | 244 /// var variable; |
| 237 /// variable(null, 42); | 245 /// variable(null, 42); |
| 238 /// } | 246 /// } |
| 239 /// | 247 /// |
| 240 R visitLocalVariableInvoke( | 248 R visitLocalVariableInvoke( |
| 241 Send node, | 249 Send node, |
| 242 LocalVariableElement variable, | 250 LocalVariableElement variable, |
| 243 NodeList arguments, | 251 NodeList arguments, |
| 244 CallStructure callStructure, | 252 CallStructure callStructure, |
| 245 A arg); | 253 A arg); |
| 246 | 254 |
| 247 /// Closurization of the local [function]. | 255 /// Closurization of the local [function]. |
| 248 /// | 256 /// |
| 249 /// For instance: | 257 /// For instance: |
| 258 /// |
| 250 /// m() { | 259 /// m() { |
| 251 /// o(a, b) {} | 260 /// o(a, b) {} |
| 252 /// return o; | 261 /// return o; |
| 253 /// } | 262 /// } |
| 254 /// | 263 /// |
| 255 R visitLocalFunctionGet( | 264 R visitLocalFunctionGet( |
| 256 Send node, | 265 Send node, |
| 257 LocalFunctionElement function, | 266 LocalFunctionElement function, |
| 258 A arg); | 267 A arg); |
| 259 | 268 |
| 260 /// Assignment of [rhs] to the local [function]. | 269 /// Assignment of [rhs] to the local [function]. |
| 261 /// | 270 /// |
| 262 /// For instance: | 271 /// For instance: |
| 272 /// |
| 263 /// m() { | 273 /// m() { |
| 264 /// o(a, b) {} | 274 /// o(a, b) {} |
| 265 /// o = rhs; | 275 /// o = rhs; |
| 266 /// } | 276 /// } |
| 267 /// | 277 /// |
| 268 R visitLocalFunctionSet( | 278 R visitLocalFunctionSet( |
| 269 SendSet node, | 279 SendSet node, |
| 270 LocalFunctionElement function, | 280 LocalFunctionElement function, |
| 271 Node rhs, | 281 Node rhs, |
| 272 A arg); | 282 A arg); |
| 273 | 283 |
| 274 /// Invocation of the local [function] with [arguments]. | 284 /// Invocation of the local [function] with [arguments]. |
| 275 /// | 285 /// |
| 276 /// For instance: | 286 /// For instance: |
| 287 /// |
| 277 /// m() { | 288 /// m() { |
| 278 /// o(a, b) {} | 289 /// o(a, b) {} |
| 279 /// return o(null, 42); | 290 /// return o(null, 42); |
| 280 /// } | 291 /// } |
| 281 /// | 292 /// |
| 282 R visitLocalFunctionInvoke( | 293 R visitLocalFunctionInvoke( |
| 283 Send node, | 294 Send node, |
| 284 LocalFunctionElement function, | 295 LocalFunctionElement function, |
| 285 NodeList arguments, | 296 NodeList arguments, |
| 286 CallStructure callStructure, | 297 CallStructure callStructure, |
| 287 A arg); | 298 A arg); |
| 288 | 299 |
| 289 /// Invocation of the local [function] with incompatible [arguments]. | 300 /// Invocation of the local [function] with incompatible [arguments]. |
| 290 /// | 301 /// |
| 291 /// For instance: | 302 /// For instance: |
| 303 /// |
| 292 /// m() { | 304 /// m() { |
| 293 /// o(a) {} | 305 /// o(a) {} |
| 294 /// return o(null, 42); | 306 /// return o(null, 42); |
| 295 /// } | 307 /// } |
| 296 /// | 308 /// |
| 297 R visitLocalFunctionIncompatibleInvoke( | 309 R visitLocalFunctionIncompatibleInvoke( |
| 298 Send node, | 310 Send node, |
| 299 LocalFunctionElement function, | 311 LocalFunctionElement function, |
| 300 NodeList arguments, | 312 NodeList arguments, |
| 301 CallStructure callStructure, | 313 CallStructure callStructure, |
| 302 A arg); | 314 A arg); |
| 303 | 315 |
| 304 /// Getter call on [receiver] of the property defined by [selector]. | 316 /// Getter call on [receiver] of the property defined by [selector]. |
| 305 /// | 317 /// |
| 306 /// For instance | 318 /// For instance: |
| 319 /// |
| 307 /// m(receiver) => receiver.foo; | 320 /// m(receiver) => receiver.foo; |
| 308 /// | 321 /// |
| 309 R visitDynamicPropertyGet( | 322 R visitDynamicPropertyGet( |
| 310 Send node, | 323 Send node, |
| 311 Node receiver, | 324 Node receiver, |
| 312 Selector selector, | 325 Selector selector, |
| 313 A arg); | 326 A arg); |
| 314 | 327 |
| 315 /// Conditional (if not null) getter call on [receiver] of the property | 328 /// Conditional (if not null) getter call on [receiver] of the property |
| 316 /// defined by [selector]. | 329 /// defined by [selector]. |
| 317 /// | 330 /// |
| 318 /// For instance | 331 /// For instance: |
| 332 /// |
| 319 /// m(receiver) => receiver?.foo; | 333 /// m(receiver) => receiver?.foo; |
| 320 /// | 334 /// |
| 321 R visitIfNotNullDynamicPropertyGet( | 335 R visitIfNotNullDynamicPropertyGet( |
| 322 Send node, | 336 Send node, |
| 323 Node receiver, | 337 Node receiver, |
| 324 Selector selector, | 338 Selector selector, |
| 325 A arg); | 339 A arg); |
| 326 | 340 |
| 327 /// Setter call on [receiver] with argument [rhs] of the property defined by | 341 /// Setter call on [receiver] with argument [rhs] of the property defined by |
| 328 /// [selector]. | 342 /// [selector]. |
| 329 /// | 343 /// |
| 330 /// For instance | 344 /// For instance: |
| 345 /// |
| 331 /// m(receiver) { | 346 /// m(receiver) { |
| 332 /// receiver.foo = rhs; | 347 /// receiver.foo = rhs; |
| 333 /// } | 348 /// } |
| 334 /// | 349 /// |
| 335 R visitDynamicPropertySet( | 350 R visitDynamicPropertySet( |
| 336 SendSet node, | 351 SendSet node, |
| 337 Node receiver, | 352 Node receiver, |
| 338 Selector selector, | 353 Selector selector, |
| 339 Node rhs, | 354 Node rhs, |
| 340 A arg); | 355 A arg); |
| 341 | 356 |
| 342 /// Conditional (if not null) setter call on [receiver] with argument [rhs] of | 357 /// Conditional (if not null) setter call on [receiver] with argument [rhs] of |
| 343 /// the property defined by [selector]. | 358 /// the property defined by [selector]. |
| 344 /// | 359 /// |
| 345 /// For instance | 360 /// For instance: |
| 361 /// |
| 346 /// m(receiver) { | 362 /// m(receiver) { |
| 347 /// receiver?.foo = rhs; | 363 /// receiver?.foo = rhs; |
| 348 /// } | 364 /// } |
| 349 /// | 365 /// |
| 350 R visitIfNotNullDynamicPropertySet( | 366 R visitIfNotNullDynamicPropertySet( |
| 351 SendSet node, | 367 SendSet node, |
| 352 Node receiver, | 368 Node receiver, |
| 353 Selector selector, | 369 Selector selector, |
| 354 Node rhs, | 370 Node rhs, |
| 355 A arg); | 371 A arg); |
| 356 | 372 |
| 357 /// Invocation of the property defined by [selector] on [receiver] with | 373 /// Invocation of the property defined by [selector] on [receiver] with |
| 358 /// [arguments]. | 374 /// [arguments]. |
| 359 /// | 375 /// |
| 360 /// For instance | 376 /// For instance: |
| 377 /// |
| 361 /// m(receiver) { | 378 /// m(receiver) { |
| 362 /// receiver.foo(null, 42); | 379 /// receiver.foo(null, 42); |
| 363 /// } | 380 /// } |
| 364 /// | 381 /// |
| 365 R visitDynamicPropertyInvoke( | 382 R visitDynamicPropertyInvoke( |
| 366 Send node, | 383 Send node, |
| 367 Node receiver, | 384 Node receiver, |
| 368 NodeList arguments, | 385 NodeList arguments, |
| 369 Selector selector, | 386 Selector selector, |
| 370 A arg); | 387 A arg); |
| 371 | 388 |
| 372 /// Conditinal invocation of the property defined by [selector] on [receiver] | 389 /// Conditinal invocation of the property defined by [selector] on [receiver] |
| 373 /// with [arguments], if [receiver] is not null. | 390 /// with [arguments], if [receiver] is not null. |
| 374 /// | 391 /// |
| 375 /// For instance | 392 /// For instance: |
| 393 /// |
| 376 /// m(receiver) { | 394 /// m(receiver) { |
| 377 /// receiver?.foo(null, 42); | 395 /// receiver?.foo(null, 42); |
| 378 /// } | 396 /// } |
| 379 /// | 397 /// |
| 380 R visitIfNotNullDynamicPropertyInvoke( | 398 R visitIfNotNullDynamicPropertyInvoke( |
| 381 Send node, | 399 Send node, |
| 382 Node receiver, | 400 Node receiver, |
| 383 NodeList arguments, | 401 NodeList arguments, |
| 384 Selector selector, | 402 Selector selector, |
| 385 A arg); | 403 A arg); |
| 386 | 404 |
| 387 /// Getter call on `this` of the property defined by [selector]. | 405 /// Getter call on `this` of the property defined by [selector]. |
| 388 /// | 406 /// |
| 389 /// For instance | 407 /// For instance: |
| 408 /// |
| 390 /// class C { | 409 /// class C { |
| 391 /// m() => this.foo; | 410 /// m() => this.foo; |
| 392 /// } | 411 /// } |
| 393 /// | 412 /// |
| 394 /// or | 413 /// or |
| 395 /// | 414 /// |
| 396 /// class C { | 415 /// class C { |
| 397 /// m() => foo; | 416 /// m() => foo; |
| 398 /// } | 417 /// } |
| 399 /// | 418 /// |
| 400 R visitThisPropertyGet( | 419 R visitThisPropertyGet( |
| 401 Send node, | 420 Send node, |
| 402 Selector selector, | 421 Selector selector, |
| 403 A arg); | 422 A arg); |
| 404 | 423 |
| 405 /// Setter call on `this` with argument [rhs] of the property defined by | 424 /// Setter call on `this` with argument [rhs] of the property defined by |
| 406 /// [selector]. | 425 /// [selector]. |
| 426 /// |
| 427 /// For instance: |
| 428 /// |
| 407 /// class C { | 429 /// class C { |
| 408 /// m() { this.foo = rhs; } | 430 /// m() { this.foo = rhs; } |
| 409 /// } | 431 /// } |
| 410 /// | 432 /// |
| 411 /// or | 433 /// or |
| 412 /// | 434 /// |
| 413 /// class C { | 435 /// class C { |
| 414 /// m() { foo = rhs; } | 436 /// m() { foo = rhs; } |
| 415 /// } | 437 /// } |
| 416 /// | 438 /// |
| 417 R visitThisPropertySet( | 439 R visitThisPropertySet( |
| 418 SendSet node, | 440 SendSet node, |
| 419 Selector selector, | 441 Selector selector, |
| 420 Node rhs, | 442 Node rhs, |
| 421 A arg); | 443 A arg); |
| 422 | 444 |
| 423 /// Invocation of the property defined by [selector] on `this` with | 445 /// Invocation of the property defined by [selector] on `this` with |
| 424 /// [arguments]. | 446 /// [arguments]. |
| 425 /// | 447 /// |
| 426 /// For instance | 448 /// For instance: |
| 449 /// |
| 427 /// class C { | 450 /// class C { |
| 428 /// m() { this.foo(null, 42); } | 451 /// m() { this.foo(null, 42); } |
| 429 /// } | 452 /// } |
| 430 /// | 453 /// |
| 431 /// or | 454 /// or |
| 432 /// | 455 /// |
| 433 /// class C { | 456 /// class C { |
| 434 /// m() { foo(null, 42); } | 457 /// m() { foo(null, 42); } |
| 435 /// } | 458 /// } |
| 436 /// | 459 /// |
| 437 /// | 460 /// |
| 438 R visitThisPropertyInvoke( | 461 R visitThisPropertyInvoke( |
| 439 Send node, | 462 Send node, |
| 440 NodeList arguments, | 463 NodeList arguments, |
| 441 Selector selector, | 464 Selector selector, |
| 442 A arg); | 465 A arg); |
| 443 | 466 |
| 444 /// Read of `this`. | 467 /// Read of `this`. |
| 445 /// | 468 /// |
| 446 /// For instance | 469 /// For instance: |
| 470 /// |
| 447 /// class C { | 471 /// class C { |
| 448 /// m() => this; | 472 /// m() => this; |
| 449 /// } | 473 /// } |
| 450 /// | 474 /// |
| 451 R visitThisGet( | 475 R visitThisGet( |
| 452 Identifier node, | 476 Identifier node, |
| 453 A arg); | 477 A arg); |
| 454 | 478 |
| 455 /// Invocation of `this` with [arguments]. | 479 /// Invocation of `this` with [arguments]. |
| 456 /// | 480 /// |
| 457 /// For instance | 481 /// For instance: |
| 482 /// |
| 458 /// class C { | 483 /// class C { |
| 459 /// m() => this(null, 42); | 484 /// m() => this(null, 42); |
| 460 /// } | 485 /// } |
| 461 /// | 486 /// |
| 462 R visitThisInvoke( | 487 R visitThisInvoke( |
| 463 Send node, | 488 Send node, |
| 464 NodeList arguments, | 489 NodeList arguments, |
| 465 CallStructure callStructure, | 490 CallStructure callStructure, |
| 466 A arg); | 491 A arg); |
| 467 | 492 |
| 468 | 493 |
| 469 /// Read of the super [field]. | 494 /// Read of the super [field]. |
| 470 /// | 495 /// |
| 471 /// For instance | 496 /// For instance: |
| 497 /// |
| 472 /// class B { | 498 /// class B { |
| 473 /// var foo; | 499 /// var foo; |
| 474 /// } | 500 /// } |
| 475 /// class C extends B { | 501 /// class C extends B { |
| 476 /// m() => super.foo; | 502 /// m() => super.foo; |
| 477 /// } | 503 /// } |
| 478 /// | 504 /// |
| 479 R visitSuperFieldGet( | 505 R visitSuperFieldGet( |
| 480 Send node, | 506 Send node, |
| 481 FieldElement field, | 507 FieldElement field, |
| 482 A arg); | 508 A arg); |
| 483 | 509 |
| 484 /// Assignment of [rhs] to the super [field]. | 510 /// Assignment of [rhs] to the super [field]. |
| 485 /// | 511 /// |
| 486 /// For instance | 512 /// For instance: |
| 513 /// |
| 487 /// class B { | 514 /// class B { |
| 488 /// var foo; | 515 /// var foo; |
| 489 /// } | 516 /// } |
| 490 /// class C extends B { | 517 /// class C extends B { |
| 491 /// m() { super.foo = rhs; } | 518 /// m() { super.foo = rhs; } |
| 492 /// } | 519 /// } |
| 493 /// | 520 /// |
| 494 R visitSuperFieldSet( | 521 R visitSuperFieldSet( |
| 495 SendSet node, | 522 SendSet node, |
| 496 FieldElement field, | 523 FieldElement field, |
| 497 Node rhs, | 524 Node rhs, |
| 498 A arg); | 525 A arg); |
| 499 | 526 |
| 500 /// Assignment of [rhs] to the final static [field]. | 527 /// Assignment of [rhs] to the final static [field]. |
| 501 /// | 528 /// |
| 502 /// For instance | 529 /// For instance: |
| 530 /// |
| 503 /// class B { | 531 /// class B { |
| 504 /// final foo = null; | 532 /// final foo = null; |
| 505 /// } | 533 /// } |
| 506 /// class C extends B { | 534 /// class C extends B { |
| 507 /// m() { super.foo = rhs; } | 535 /// m() { super.foo = rhs; } |
| 508 /// } | 536 /// } |
| 509 /// | 537 /// |
| 510 R visitFinalSuperFieldSet( | 538 R visitFinalSuperFieldSet( |
| 511 SendSet node, | 539 SendSet node, |
| 512 FieldElement field, | 540 FieldElement field, |
| 513 Node rhs, | 541 Node rhs, |
| 514 A arg); | 542 A arg); |
| 515 | 543 |
| 516 /// Invocation of the super [field] with [arguments]. | 544 /// Invocation of the super [field] with [arguments]. |
| 517 /// | 545 /// |
| 518 /// For instance | 546 /// For instance: |
| 547 /// |
| 519 /// class B { | 548 /// class B { |
| 520 /// var foo; | 549 /// var foo; |
| 521 /// } | 550 /// } |
| 522 /// class C extends B { | 551 /// class C extends B { |
| 523 /// m() { super.foo(null, 42); } | 552 /// m() { super.foo(null, 42); } |
| 524 /// } | 553 /// } |
| 525 /// | 554 /// |
| 526 R visitSuperFieldInvoke( | 555 R visitSuperFieldInvoke( |
| 527 Send node, | 556 Send node, |
| 528 FieldElement field, | 557 FieldElement field, |
| 529 NodeList arguments, | 558 NodeList arguments, |
| 530 CallStructure callStructure, | 559 CallStructure callStructure, |
| 531 A arg); | 560 A arg); |
| 532 | 561 |
| 533 /// Closurization of the super [method]. | 562 /// Closurization of the super [method]. |
| 534 /// | 563 /// |
| 535 /// For instance | 564 /// For instance: |
| 565 /// |
| 536 /// class B { | 566 /// class B { |
| 537 /// foo(a, b) {} | 567 /// foo(a, b) {} |
| 538 /// } | 568 /// } |
| 539 /// class C extends B { | 569 /// class C extends B { |
| 540 /// m() => super.foo; | 570 /// m() => super.foo; |
| 541 /// } | 571 /// } |
| 542 /// | 572 /// |
| 543 R visitSuperMethodGet( | 573 R visitSuperMethodGet( |
| 544 Send node, | 574 Send node, |
| 545 MethodElement method, | 575 MethodElement method, |
| 546 A arg); | 576 A arg); |
| 547 | 577 |
| 548 /// Invocation of the super [method] with [arguments]. | 578 /// Invocation of the super [method] with [arguments]. |
| 549 /// | 579 /// |
| 550 /// For instance | 580 /// For instance: |
| 581 /// |
| 551 /// class B { | 582 /// class B { |
| 552 /// foo(a, b) {} | 583 /// foo(a, b) {} |
| 553 /// } | 584 /// } |
| 554 /// class C extends B { | 585 /// class C extends B { |
| 555 /// m() { super.foo(null, 42); } | 586 /// m() { super.foo(null, 42); } |
| 556 /// } | 587 /// } |
| 557 /// | 588 /// |
| 558 R visitSuperMethodInvoke( | 589 R visitSuperMethodInvoke( |
| 559 Send node, | 590 Send node, |
| 560 MethodElement method, | 591 MethodElement method, |
| 561 NodeList arguments, | 592 NodeList arguments, |
| 562 CallStructure callStructure, | 593 CallStructure callStructure, |
| 563 A arg); | 594 A arg); |
| 564 | 595 |
| 565 /// Invocation of the super [method] with incompatible [arguments]. | 596 /// Invocation of the super [method] with incompatible [arguments]. |
| 566 /// | 597 /// |
| 567 /// For instance | 598 /// For instance: |
| 599 /// |
| 568 /// class B { | 600 /// class B { |
| 569 /// foo(a, b) {} | 601 /// foo(a, b) {} |
| 570 /// } | 602 /// } |
| 571 /// class C extends B { | 603 /// class C extends B { |
| 572 /// m() { super.foo(null); } // One argument missing. | 604 /// m() { super.foo(null); } // One argument missing. |
| 573 /// } | 605 /// } |
| 574 /// | 606 /// |
| 575 R visitSuperMethodIncompatibleInvoke( | 607 R visitSuperMethodIncompatibleInvoke( |
| 576 Send node, | 608 Send node, |
| 577 MethodElement method, | 609 MethodElement method, |
| 578 NodeList arguments, | 610 NodeList arguments, |
| 579 CallStructure callStructure, | 611 CallStructure callStructure, |
| 580 A arg); | 612 A arg); |
| 581 | 613 |
| 582 /// Assignment of [rhs] to the super [method]. | 614 /// Assignment of [rhs] to the super [method]. |
| 583 /// | 615 /// |
| 584 /// For instance | 616 /// For instance: |
| 617 /// |
| 585 /// class B { | 618 /// class B { |
| 586 /// foo(a, b) {} | 619 /// foo(a, b) {} |
| 587 /// } | 620 /// } |
| 588 /// class C extends B { | 621 /// class C extends B { |
| 589 /// m() { super.foo = rhs; } | 622 /// m() { super.foo = rhs; } |
| 590 /// } | 623 /// } |
| 591 /// | 624 /// |
| 592 R visitSuperMethodSet( | 625 R visitSuperMethodSet( |
| 593 Send node, | 626 Send node, |
| 594 MethodElement method, | 627 MethodElement method, |
| 595 Node rhs, | 628 Node rhs, |
| 596 A arg); | 629 A arg); |
| 597 | 630 |
| 598 /// Getter call to the super [getter]. | 631 /// Getter call to the super [getter]. |
| 599 /// | 632 /// |
| 600 /// For instance | 633 /// For instance: |
| 634 /// |
| 601 /// class B { | 635 /// class B { |
| 602 /// get foo => null; | 636 /// get foo => null; |
| 603 /// } | 637 /// } |
| 604 /// class C extends B { | 638 /// class C extends B { |
| 605 /// m() => super.foo; | 639 /// m() => super.foo; |
| 606 /// } | 640 /// } |
| 607 /// | 641 /// |
| 608 R visitSuperGetterGet( | 642 R visitSuperGetterGet( |
| 609 Send node, | 643 Send node, |
| 610 FunctionElement getter, | 644 FunctionElement getter, |
| 611 A arg); | 645 A arg); |
| 612 | 646 |
| 613 /// Getter call the super [setter]. | 647 /// Getter call the super [setter]. |
| 614 /// | 648 /// |
| 615 /// For instance | 649 /// For instance: |
| 650 /// |
| 616 /// class B { | 651 /// class B { |
| 617 /// set foo(_) {} | 652 /// set foo(_) {} |
| 618 /// } | 653 /// } |
| 619 /// class C extends B { | 654 /// class C extends B { |
| 620 /// m() => super.foo; | 655 /// m() => super.foo; |
| 621 /// } | 656 /// } |
| 622 /// | 657 /// |
| 623 R visitSuperSetterGet( | 658 R visitSuperSetterGet( |
| 624 Send node, | 659 Send node, |
| 625 FunctionElement setter, | 660 FunctionElement setter, |
| 626 A arg); | 661 A arg); |
| 627 | 662 |
| 628 /// Setter call to the super [setter]. | 663 /// Setter call to the super [setter]. |
| 629 /// | 664 /// |
| 630 /// For instance | 665 /// For instance: |
| 666 /// |
| 631 /// class B { | 667 /// class B { |
| 632 /// set foo(_) {} | 668 /// set foo(_) {} |
| 633 /// } | 669 /// } |
| 634 /// class C extends B { | 670 /// class C extends B { |
| 635 /// m() { super.foo = rhs; } | 671 /// m() { super.foo = rhs; } |
| 636 /// } | 672 /// } |
| 637 /// | 673 /// |
| 638 R visitSuperSetterSet( | 674 R visitSuperSetterSet( |
| 639 SendSet node, | 675 SendSet node, |
| 640 FunctionElement setter, | 676 FunctionElement setter, |
| 641 Node rhs, | 677 Node rhs, |
| 642 A arg); | 678 A arg); |
| 643 | 679 |
| 644 /// Assignment of [rhs] to the super [getter]. | 680 /// Assignment of [rhs] to the super [getter]. |
| 645 /// | 681 /// |
| 646 /// For instance | 682 /// For instance: |
| 683 /// |
| 647 /// class B { | 684 /// class B { |
| 648 /// get foo => null; | 685 /// get foo => null; |
| 649 /// } | 686 /// } |
| 650 /// class C extends B { | 687 /// class C extends B { |
| 651 /// m() { super.foo = rhs; } | 688 /// m() { super.foo = rhs; } |
| 652 /// } | 689 /// } |
| 653 /// | 690 /// |
| 654 R visitSuperGetterSet( | 691 R visitSuperGetterSet( |
| 655 SendSet node, | 692 SendSet node, |
| 656 FunctionElement getter, | 693 FunctionElement getter, |
| 657 Node rhs, | 694 Node rhs, |
| 658 A arg); | 695 A arg); |
| 659 | 696 |
| 660 /// Invocation of the super [getter] with [arguments]. | 697 /// Invocation of the super [getter] with [arguments]. |
| 661 /// | 698 /// |
| 662 /// For instance | 699 /// For instance: |
| 700 /// |
| 663 /// class B { | 701 /// class B { |
| 664 /// get foo => null; | 702 /// get foo => null; |
| 665 /// } | 703 /// } |
| 666 /// class C extends B { | 704 /// class C extends B { |
| 667 /// m() { super.foo(null, 42; } | 705 /// m() { super.foo(null, 42; } |
| 668 /// } | 706 /// } |
| 669 /// | 707 /// |
| 670 R visitSuperGetterInvoke( | 708 R visitSuperGetterInvoke( |
| 671 Send node, | 709 Send node, |
| 672 FunctionElement getter, | 710 FunctionElement getter, |
| 673 NodeList arguments, | 711 NodeList arguments, |
| 674 CallStructure callStructure, | 712 CallStructure callStructure, |
| 675 A arg); | 713 A arg); |
| 676 | 714 |
| 677 /// Invocation of the super [setter] with [arguments]. | 715 /// Invocation of the super [setter] with [arguments]. |
| 678 /// | 716 /// |
| 679 /// For instance | 717 /// For instance: |
| 718 /// |
| 680 /// class B { | 719 /// class B { |
| 681 /// set foo(_) {} | 720 /// set foo(_) {} |
| 682 /// } | 721 /// } |
| 683 /// class C extends B { | 722 /// class C extends B { |
| 684 /// m() { super.foo(null, 42; } | 723 /// m() { super.foo(null, 42; } |
| 685 /// } | 724 /// } |
| 686 /// | 725 /// |
| 687 R visitSuperSetterInvoke( | 726 R visitSuperSetterInvoke( |
| 688 Send node, | 727 Send node, |
| 689 FunctionElement setter, | 728 FunctionElement setter, |
| 690 NodeList arguments, | 729 NodeList arguments, |
| 691 CallStructure callStructure, | 730 CallStructure callStructure, |
| 692 A arg); | 731 A arg); |
| 693 | 732 |
| 694 /// Invocation of a [expression] with [arguments]. | 733 /// Invocation of a [expression] with [arguments]. |
| 695 /// | 734 /// |
| 696 /// For instance | 735 /// For instance: |
| 736 /// |
| 697 /// m() => (a, b){}(null, 42); | 737 /// m() => (a, b){}(null, 42); |
| 698 /// | 738 /// |
| 699 R visitExpressionInvoke( | 739 R visitExpressionInvoke( |
| 700 Send node, | 740 Send node, |
| 701 Node expression, | 741 Node expression, |
| 702 NodeList arguments, | 742 NodeList arguments, |
| 703 Selector selector, | 743 Selector selector, |
| 704 A arg); | 744 A arg); |
| 705 | 745 |
| 706 /// Read of the static [field]. | 746 /// Read of the static [field]. |
| 707 /// | 747 /// |
| 708 /// For instance | 748 /// For instance: |
| 749 /// |
| 709 /// class C { | 750 /// class C { |
| 710 /// static var foo; | 751 /// static var foo; |
| 711 /// } | 752 /// } |
| 712 /// m() => C.foo; | 753 /// m() => C.foo; |
| 713 /// | 754 /// |
| 714 R visitStaticFieldGet( | 755 R visitStaticFieldGet( |
| 715 Send node, | 756 Send node, |
| 716 FieldElement field, | 757 FieldElement field, |
| 717 A arg); | 758 A arg); |
| 718 | 759 |
| 719 /// Assignment of [rhs] to the static [field]. | 760 /// Assignment of [rhs] to the static [field]. |
| 720 /// | 761 /// |
| 721 /// For instance | 762 /// For instance: |
| 763 /// |
| 722 /// class C { | 764 /// class C { |
| 723 /// static var foo; | 765 /// static var foo; |
| 724 /// } | 766 /// } |
| 725 /// m() { C.foo = rhs; } | 767 /// m() { C.foo = rhs; } |
| 726 /// | 768 /// |
| 727 R visitStaticFieldSet( | 769 R visitStaticFieldSet( |
| 728 SendSet node, | 770 SendSet node, |
| 729 FieldElement field, | 771 FieldElement field, |
| 730 Node rhs, | 772 Node rhs, |
| 731 A arg); | 773 A arg); |
| 732 | 774 |
| 733 /// Assignment of [rhs] to the final static [field]. | 775 /// Assignment of [rhs] to the final static [field]. |
| 734 /// | 776 /// |
| 735 /// For instance | 777 /// For instance: |
| 778 /// |
| 736 /// class C { | 779 /// class C { |
| 737 /// static final foo; | 780 /// static final foo; |
| 738 /// } | 781 /// } |
| 739 /// m() { C.foo = rhs; } | 782 /// m() { C.foo = rhs; } |
| 740 /// | 783 /// |
| 741 R visitFinalStaticFieldSet( | 784 R visitFinalStaticFieldSet( |
| 742 SendSet node, | 785 SendSet node, |
| 743 FieldElement field, | 786 FieldElement field, |
| 744 Node rhs, | 787 Node rhs, |
| 745 A arg); | 788 A arg); |
| 746 | 789 |
| 747 /// Invocation of the static [field] with [arguments]. | 790 /// Invocation of the static [field] with [arguments]. |
| 748 /// | 791 /// |
| 749 /// For instance | 792 /// For instance: |
| 793 /// |
| 750 /// class C { | 794 /// class C { |
| 751 /// static var foo; | 795 /// static var foo; |
| 752 /// } | 796 /// } |
| 753 /// m() { C.foo(null, 42); } | 797 /// m() { C.foo(null, 42); } |
| 754 /// | 798 /// |
| 755 R visitStaticFieldInvoke( | 799 R visitStaticFieldInvoke( |
| 756 Send node, | 800 Send node, |
| 757 FieldElement field, | 801 FieldElement field, |
| 758 NodeList arguments, | 802 NodeList arguments, |
| 759 CallStructure callStructure, | 803 CallStructure callStructure, |
| 760 A arg); | 804 A arg); |
| 761 | 805 |
| 762 /// Closurization of the static [function]. | 806 /// Closurization of the static [function]. |
| 763 /// | 807 /// |
| 764 /// For instance | 808 /// For instance: |
| 809 /// |
| 765 /// class C { | 810 /// class C { |
| 766 /// static foo(a, b) {} | 811 /// static foo(a, b) {} |
| 767 /// } | 812 /// } |
| 768 /// m() => C.foo; | 813 /// m() => C.foo; |
| 769 /// | 814 /// |
| 770 R visitStaticFunctionGet( | 815 R visitStaticFunctionGet( |
| 771 Send node, | 816 Send node, |
| 772 MethodElement function, | 817 MethodElement function, |
| 773 A arg); | 818 A arg); |
| 774 | 819 |
| 775 /// Invocation of the static [function] with [arguments]. | 820 /// Invocation of the static [function] with [arguments]. |
| 776 /// | 821 /// |
| 777 /// For instance | 822 /// For instance: |
| 823 /// |
| 778 /// class C { | 824 /// class C { |
| 779 /// static foo(a, b) {} | 825 /// static foo(a, b) {} |
| 780 /// } | 826 /// } |
| 781 /// m() { C.foo(null, 42); } | 827 /// m() { C.foo(null, 42); } |
| 782 /// | 828 /// |
| 783 R visitStaticFunctionInvoke( | 829 R visitStaticFunctionInvoke( |
| 784 Send node, | 830 Send node, |
| 785 MethodElement function, | 831 MethodElement function, |
| 786 NodeList arguments, | 832 NodeList arguments, |
| 787 CallStructure callStructure, | 833 CallStructure callStructure, |
| 788 A arg); | 834 A arg); |
| 789 | 835 |
| 790 /// Invocation of the static [function] with incompatible [arguments]. | 836 /// Invocation of the static [function] with incompatible [arguments]. |
| 791 /// | 837 /// |
| 792 /// For instance | 838 /// For instance: |
| 839 /// |
| 793 /// class C { | 840 /// class C { |
| 794 /// static foo(a, b) {} | 841 /// static foo(a, b) {} |
| 795 /// } | 842 /// } |
| 796 /// m() { C.foo(null); } | 843 /// m() { C.foo(null); } |
| 797 /// | 844 /// |
| 798 R visitStaticFunctionIncompatibleInvoke( | 845 R visitStaticFunctionIncompatibleInvoke( |
| 799 Send node, | 846 Send node, |
| 800 MethodElement function, | 847 MethodElement function, |
| 801 NodeList arguments, | 848 NodeList arguments, |
| 802 CallStructure callStructure, | 849 CallStructure callStructure, |
| 803 A arg); | 850 A arg); |
| 804 | 851 |
| 805 /// Assignment of [rhs] to the static [function]. | 852 /// Assignment of [rhs] to the static [function]. |
| 806 /// | 853 /// |
| 807 /// For instance | 854 /// For instance: |
| 855 /// |
| 808 /// class C { | 856 /// class C { |
| 809 /// static foo(a, b) {} | 857 /// static foo(a, b) {} |
| 810 /// } | 858 /// } |
| 811 /// m() { C.foo = rhs; } | 859 /// m() { C.foo = rhs; } |
| 812 /// | 860 /// |
| 813 R visitStaticFunctionSet( | 861 R visitStaticFunctionSet( |
| 814 Send node, | 862 Send node, |
| 815 MethodElement function, | 863 MethodElement function, |
| 816 Node rhs, | 864 Node rhs, |
| 817 A arg); | 865 A arg); |
| 818 | 866 |
| 819 /// Getter call to the static [getter]. | 867 /// Getter call to the static [getter]. |
| 820 /// | 868 /// |
| 821 /// For instance | 869 /// For instance: |
| 870 /// |
| 822 /// class C { | 871 /// class C { |
| 823 /// static get foo => null; | 872 /// static get foo => null; |
| 824 /// } | 873 /// } |
| 825 /// m() => C.foo; | 874 /// m() => C.foo; |
| 826 /// | 875 /// |
| 827 R visitStaticGetterGet( | 876 R visitStaticGetterGet( |
| 828 Send node, | 877 Send node, |
| 829 FunctionElement getter, | 878 FunctionElement getter, |
| 830 A arg); | 879 A arg); |
| 831 | 880 |
| 832 /// Getter call the static [setter]. | 881 /// Getter call the static [setter]. |
| 833 /// | 882 /// |
| 834 /// For instance | 883 /// For instance: |
| 884 /// |
| 835 /// class C { | 885 /// class C { |
| 836 /// static set foo(_) {} | 886 /// static set foo(_) {} |
| 837 /// } | 887 /// } |
| 838 /// m() => C.foo; | 888 /// m() => C.foo; |
| 839 /// | 889 /// |
| 840 R visitStaticSetterGet( | 890 R visitStaticSetterGet( |
| 841 Send node, | 891 Send node, |
| 842 FunctionElement setter, | 892 FunctionElement setter, |
| 843 A arg); | 893 A arg); |
| 844 | 894 |
| 845 /// Setter call to the static [setter]. | 895 /// Setter call to the static [setter]. |
| 846 /// | 896 /// |
| 847 /// For instance | 897 /// For instance: |
| 898 /// |
| 848 /// class C { | 899 /// class C { |
| 849 /// static set foo(_) {} | 900 /// static set foo(_) {} |
| 850 /// } | 901 /// } |
| 851 /// m() { C.foo = rhs; } | 902 /// m() { C.foo = rhs; } |
| 852 /// | 903 /// |
| 853 R visitStaticSetterSet( | 904 R visitStaticSetterSet( |
| 854 SendSet node, | 905 SendSet node, |
| 855 FunctionElement setter, | 906 FunctionElement setter, |
| 856 Node rhs, | 907 Node rhs, |
| 857 A arg); | 908 A arg); |
| 858 | 909 |
| 859 /// Assignment of [rhs] to the static [getter]. | 910 /// Assignment of [rhs] to the static [getter]. |
| 860 /// | 911 /// |
| 861 /// For instance | 912 /// For instance: |
| 913 /// |
| 862 /// class C { | 914 /// class C { |
| 863 /// static get foo => null; | 915 /// static get foo => null; |
| 864 /// } | 916 /// } |
| 865 /// m() { C.foo = rhs; } | 917 /// m() { C.foo = rhs; } |
| 866 /// | 918 /// |
| 867 R visitStaticGetterSet( | 919 R visitStaticGetterSet( |
| 868 SendSet node, | 920 SendSet node, |
| 869 FunctionElement getter, | 921 FunctionElement getter, |
| 870 Node rhs, | 922 Node rhs, |
| 871 A arg); | 923 A arg); |
| 872 | 924 |
| 873 /// Invocation of the static [getter] with [arguments]. | 925 /// Invocation of the static [getter] with [arguments]. |
| 874 /// | 926 /// |
| 875 /// For instance | 927 /// For instance: |
| 928 /// |
| 876 /// class C { | 929 /// class C { |
| 877 /// static get foo => null; | 930 /// static get foo => null; |
| 878 /// } | 931 /// } |
| 879 /// m() { C.foo(null, 42; } | 932 /// m() { C.foo(null, 42; } |
| 880 /// | 933 /// |
| 881 R visitStaticGetterInvoke( | 934 R visitStaticGetterInvoke( |
| 882 Send node, | 935 Send node, |
| 883 FunctionElement getter, | 936 FunctionElement getter, |
| 884 NodeList arguments, | 937 NodeList arguments, |
| 885 CallStructure callStructure, | 938 CallStructure callStructure, |
| 886 A arg); | 939 A arg); |
| 887 | 940 |
| 888 /// Invocation of the static [setter] with [arguments]. | 941 /// Invocation of the static [setter] with [arguments]. |
| 889 /// | 942 /// |
| 890 /// For instance | 943 /// For instance: |
| 944 /// |
| 891 /// class C { | 945 /// class C { |
| 892 /// static set foo(_) {} | 946 /// static set foo(_) {} |
| 893 /// } | 947 /// } |
| 894 /// m() { C.foo(null, 42; } | 948 /// m() { C.foo(null, 42; } |
| 895 /// | 949 /// |
| 896 R visitStaticSetterInvoke( | 950 R visitStaticSetterInvoke( |
| 897 Send node, | 951 Send node, |
| 898 FunctionElement setter, | 952 FunctionElement setter, |
| 899 NodeList arguments, | 953 NodeList arguments, |
| 900 CallStructure callStructure, | 954 CallStructure callStructure, |
| 901 A arg); | 955 A arg); |
| 902 | 956 |
| 903 /// Read of the top level [field]. | 957 /// Read of the top level [field]. |
| 904 /// | 958 /// |
| 905 /// For instance | 959 /// For instance: |
| 960 /// |
| 906 /// var foo; | 961 /// var foo; |
| 907 /// m() => foo; | 962 /// m() => foo; |
| 908 /// | 963 /// |
| 909 R visitTopLevelFieldGet( | 964 R visitTopLevelFieldGet( |
| 910 Send node, | 965 Send node, |
| 911 FieldElement field, | 966 FieldElement field, |
| 912 A arg); | 967 A arg); |
| 913 | 968 |
| 914 /// Assignment of [rhs] to the top level [field]. | 969 /// Assignment of [rhs] to the top level [field]. |
| 915 /// | 970 /// |
| 916 /// For instance | 971 /// For instance: |
| 972 /// |
| 917 /// var foo; | 973 /// var foo; |
| 918 /// m() { foo = rhs; } | 974 /// m() { foo = rhs; } |
| 919 /// | 975 /// |
| 920 R visitTopLevelFieldSet( | 976 R visitTopLevelFieldSet( |
| 921 SendSet node, | 977 SendSet node, |
| 922 FieldElement field, | 978 FieldElement field, |
| 923 Node rhs, | 979 Node rhs, |
| 924 A arg); | 980 A arg); |
| 925 | 981 |
| 926 /// Assignment of [rhs] to the final top level [field]. | 982 /// Assignment of [rhs] to the final top level [field]. |
| 927 /// | 983 /// |
| 928 /// For instance | 984 /// For instance: |
| 985 /// |
| 929 /// final foo = null; | 986 /// final foo = null; |
| 930 /// m() { foo = rhs; } | 987 /// m() { foo = rhs; } |
| 931 /// | 988 /// |
| 932 R visitFinalTopLevelFieldSet( | 989 R visitFinalTopLevelFieldSet( |
| 933 SendSet node, | 990 SendSet node, |
| 934 FieldElement field, | 991 FieldElement field, |
| 935 Node rhs, | 992 Node rhs, |
| 936 A arg); | 993 A arg); |
| 937 | 994 |
| 938 /// Invocation of the top level [field] with [arguments]. | 995 /// Invocation of the top level [field] with [arguments]. |
| 939 /// | 996 /// |
| 940 /// For instance | 997 /// For instance: |
| 998 /// |
| 941 /// var foo; | 999 /// var foo; |
| 942 /// m() { foo(null, 42); } | 1000 /// m() { foo(null, 42); } |
| 943 /// | 1001 /// |
| 944 R visitTopLevelFieldInvoke( | 1002 R visitTopLevelFieldInvoke( |
| 945 Send node, | 1003 Send node, |
| 946 FieldElement field, | 1004 FieldElement field, |
| 947 NodeList arguments, | 1005 NodeList arguments, |
| 948 CallStructure callStructure, | 1006 CallStructure callStructure, |
| 949 A arg); | 1007 A arg); |
| 950 | 1008 |
| 951 /// Closurization of the top level [function]. | 1009 /// Closurization of the top level [function]. |
| 952 /// | 1010 /// |
| 953 /// For instance | 1011 /// For instance: |
| 1012 /// |
| 954 /// foo(a, b) {}; | 1013 /// foo(a, b) {}; |
| 955 /// m() => foo; | 1014 /// m() => foo; |
| 956 /// | 1015 /// |
| 957 R visitTopLevelFunctionGet( | 1016 R visitTopLevelFunctionGet( |
| 958 Send node, | 1017 Send node, |
| 959 MethodElement function, | 1018 MethodElement function, |
| 960 A arg); | 1019 A arg); |
| 961 | 1020 |
| 962 /// Invocation of the top level [function] with [arguments]. | 1021 /// Invocation of the top level [function] with [arguments]. |
| 963 /// | 1022 /// |
| 964 /// For instance | 1023 /// For instance: |
| 1024 /// |
| 965 /// foo(a, b) {}; | 1025 /// foo(a, b) {}; |
| 966 /// m() { foo(null, 42); } | 1026 /// m() { foo(null, 42); } |
| 967 /// | 1027 /// |
| 968 R visitTopLevelFunctionInvoke( | 1028 R visitTopLevelFunctionInvoke( |
| 969 Send node, | 1029 Send node, |
| 970 MethodElement function, | 1030 MethodElement function, |
| 971 NodeList arguments, | 1031 NodeList arguments, |
| 972 CallStructure callStructure, | 1032 CallStructure callStructure, |
| 973 A arg); | 1033 A arg); |
| 974 | 1034 |
| 975 /// Invocation of the top level [function] with incompatible [arguments]. | 1035 /// Invocation of the top level [function] with incompatible [arguments]. |
| 976 /// | 1036 /// |
| 977 /// For instance | 1037 /// For instance: |
| 1038 /// |
| 978 /// class C { | 1039 /// class C { |
| 979 /// static foo(a, b) {} | 1040 /// static foo(a, b) {} |
| 980 /// } | 1041 /// } |
| 981 /// m() { C.foo(null); } | 1042 /// m() { C.foo(null); } |
| 982 /// | 1043 /// |
| 983 R visitTopLevelFunctionIncompatibleInvoke( | 1044 R visitTopLevelFunctionIncompatibleInvoke( |
| 984 Send node, | 1045 Send node, |
| 985 MethodElement function, | 1046 MethodElement function, |
| 986 NodeList arguments, | 1047 NodeList arguments, |
| 987 CallStructure callStructure, | 1048 CallStructure callStructure, |
| 988 A arg); | 1049 A arg); |
| 989 | 1050 |
| 990 /// Assignment of [rhs] to the top level [function]. | 1051 /// Assignment of [rhs] to the top level [function]. |
| 991 /// | 1052 /// |
| 992 /// For instance | 1053 /// For instance: |
| 1054 /// |
| 993 /// foo(a, b) {}; | 1055 /// foo(a, b) {}; |
| 994 /// m() { foo = rhs; } | 1056 /// m() { foo = rhs; } |
| 995 /// | 1057 /// |
| 996 R visitTopLevelFunctionSet( | 1058 R visitTopLevelFunctionSet( |
| 997 Send node, | 1059 Send node, |
| 998 MethodElement function, | 1060 MethodElement function, |
| 999 Node rhs, | 1061 Node rhs, |
| 1000 A arg); | 1062 A arg); |
| 1001 | 1063 |
| 1002 /// Getter call to the top level [getter]. | 1064 /// Getter call to the top level [getter]. |
| 1003 /// | 1065 /// |
| 1004 /// For instance | 1066 /// For instance: |
| 1067 /// |
| 1005 /// get foo => null; | 1068 /// get foo => null; |
| 1006 /// m() => foo; | 1069 /// m() => foo; |
| 1007 /// | 1070 /// |
| 1008 R visitTopLevelGetterGet( | 1071 R visitTopLevelGetterGet( |
| 1009 Send node, | 1072 Send node, |
| 1010 FunctionElement getter, | 1073 FunctionElement getter, |
| 1011 A arg); | 1074 A arg); |
| 1012 | 1075 |
| 1013 /// Getter call the top level [setter]. | 1076 /// Getter call the top level [setter]. |
| 1014 /// | 1077 /// |
| 1015 /// For instance | 1078 /// For instance: |
| 1079 /// |
| 1016 /// set foo(_) {} | 1080 /// set foo(_) {} |
| 1017 /// m() => foo; | 1081 /// m() => foo; |
| 1018 /// | 1082 /// |
| 1019 R visitTopLevelSetterGet( | 1083 R visitTopLevelSetterGet( |
| 1020 Send node, | 1084 Send node, |
| 1021 FunctionElement setter, | 1085 FunctionElement setter, |
| 1022 A arg); | 1086 A arg); |
| 1023 | 1087 |
| 1024 /// Setter call to the top level [setter]. | 1088 /// Setter call to the top level [setter]. |
| 1025 /// | 1089 /// |
| 1026 /// For instance | 1090 /// For instance: |
| 1091 /// |
| 1027 /// set foo(_) {} | 1092 /// set foo(_) {} |
| 1028 /// m() { foo = rhs; } | 1093 /// m() { foo = rhs; } |
| 1029 /// | 1094 /// |
| 1030 R visitTopLevelSetterSet( | 1095 R visitTopLevelSetterSet( |
| 1031 SendSet node, | 1096 SendSet node, |
| 1032 FunctionElement setter, | 1097 FunctionElement setter, |
| 1033 Node rhs, | 1098 Node rhs, |
| 1034 A arg); | 1099 A arg); |
| 1035 | 1100 |
| 1036 /// Assignment of [rhs] to the top level [getter]. | 1101 /// Assignment of [rhs] to the top level [getter]. |
| 1037 /// | 1102 /// |
| 1038 /// For instance | 1103 /// For instance: |
| 1104 /// |
| 1039 /// get foo => null; | 1105 /// get foo => null; |
| 1040 /// m() { foo = rhs; } | 1106 /// m() { foo = rhs; } |
| 1041 /// | 1107 /// |
| 1042 R visitTopLevelGetterSet( | 1108 R visitTopLevelGetterSet( |
| 1043 SendSet node, | 1109 SendSet node, |
| 1044 FunctionElement getter, | 1110 FunctionElement getter, |
| 1045 Node rhs, | 1111 Node rhs, |
| 1046 A arg); | 1112 A arg); |
| 1047 | 1113 |
| 1048 /// Invocation of the top level [getter] with [arguments]. | 1114 /// Invocation of the top level [getter] with [arguments]. |
| 1049 /// | 1115 /// |
| 1050 /// For instance | 1116 /// For instance: |
| 1117 /// |
| 1051 /// get foo => null; | 1118 /// get foo => null; |
| 1052 /// m() { foo(null, 42); } | 1119 /// m() { foo(null, 42); } |
| 1053 /// | 1120 /// |
| 1054 R visitTopLevelGetterInvoke( | 1121 R visitTopLevelGetterInvoke( |
| 1055 Send node, | 1122 Send node, |
| 1056 FunctionElement getter, | 1123 FunctionElement getter, |
| 1057 NodeList arguments, | 1124 NodeList arguments, |
| 1058 CallStructure callStructure, | 1125 CallStructure callStructure, |
| 1059 A arg); | 1126 A arg); |
| 1060 | 1127 |
| 1061 /// Invocation of the top level [setter] with [arguments]. | 1128 /// Invocation of the top level [setter] with [arguments]. |
| 1062 /// | 1129 /// |
| 1063 /// For instance | 1130 /// For instance: |
| 1131 /// |
| 1064 /// set foo(_) {}; | 1132 /// set foo(_) {}; |
| 1065 /// m() { foo(null, 42); } | 1133 /// m() { foo(null, 42); } |
| 1066 /// | 1134 /// |
| 1067 R visitTopLevelSetterInvoke( | 1135 R visitTopLevelSetterInvoke( |
| 1068 Send node, | 1136 Send node, |
| 1069 FunctionElement setter, | 1137 FunctionElement setter, |
| 1070 NodeList arguments, | 1138 NodeList arguments, |
| 1071 CallStructure callStructure, | 1139 CallStructure callStructure, |
| 1072 A arg); | 1140 A arg); |
| 1073 | 1141 |
| 1074 /// Read of the type literal for class [element]. | 1142 /// Read of the type literal for class [element]. |
| 1075 /// | 1143 /// |
| 1076 /// For instance | 1144 /// For instance: |
| 1145 /// |
| 1077 /// class C {} | 1146 /// class C {} |
| 1078 /// m() => C; | 1147 /// m() => C; |
| 1079 /// | 1148 /// |
| 1080 R visitClassTypeLiteralGet( | 1149 R visitClassTypeLiteralGet( |
| 1081 Send node, | 1150 Send node, |
| 1082 ConstantExpression constant, | 1151 ConstantExpression constant, |
| 1083 A arg); | 1152 A arg); |
| 1084 | 1153 |
| 1085 /// Invocation of the type literal for class [element] with [arguments]. | 1154 /// Invocation of the type literal for class [element] with [arguments]. |
| 1086 /// | 1155 /// |
| 1087 /// For instance | 1156 /// For instance: |
| 1157 /// |
| 1088 /// class C {} | 1158 /// class C {} |
| 1089 /// m() => C(null, 42); | 1159 /// m() => C(null, 42); |
| 1090 /// | 1160 /// |
| 1091 R visitClassTypeLiteralInvoke( | 1161 R visitClassTypeLiteralInvoke( |
| 1092 Send node, | 1162 Send node, |
| 1093 ConstantExpression constant, | 1163 ConstantExpression constant, |
| 1094 NodeList arguments, | 1164 NodeList arguments, |
| 1095 CallStructure callStructure, | 1165 CallStructure callStructure, |
| 1096 A arg); | 1166 A arg); |
| 1097 | 1167 |
| 1098 /// Assignment of [rhs] to the type literal for class [element]. | 1168 /// Assignment of [rhs] to the type literal for class [element]. |
| 1099 /// | 1169 /// |
| 1100 /// For instance | 1170 /// For instance: |
| 1171 /// |
| 1101 /// class C {} | 1172 /// class C {} |
| 1102 /// m() { C = rhs; } | 1173 /// m() { C = rhs; } |
| 1103 /// | 1174 /// |
| 1104 R visitClassTypeLiteralSet( | 1175 R visitClassTypeLiteralSet( |
| 1105 SendSet node, | 1176 SendSet node, |
| 1106 ConstantExpression constant, | 1177 ConstantExpression constant, |
| 1107 Node rhs, | 1178 Node rhs, |
| 1108 A arg); | 1179 A arg); |
| 1109 | 1180 |
| 1110 /// Read of the type literal for typedef [element]. | 1181 /// Read of the type literal for typedef [element]. |
| 1111 /// | 1182 /// |
| 1112 /// For instance | 1183 /// For instance: |
| 1184 /// |
| 1113 /// typedef F(); | 1185 /// typedef F(); |
| 1114 /// m() => F; | 1186 /// m() => F; |
| 1115 /// | 1187 /// |
| 1116 R visitTypedefTypeLiteralGet( | 1188 R visitTypedefTypeLiteralGet( |
| 1117 Send node, | 1189 Send node, |
| 1118 ConstantExpression constant, | 1190 ConstantExpression constant, |
| 1119 A arg); | 1191 A arg); |
| 1120 | 1192 |
| 1121 /// Invocation of the type literal for typedef [element] with [arguments]. | 1193 /// Invocation of the type literal for typedef [element] with [arguments]. |
| 1122 /// | 1194 /// |
| 1123 /// For instance | 1195 /// For instance: |
| 1196 /// |
| 1124 /// typedef F(); | 1197 /// typedef F(); |
| 1125 /// m() => F(null, 42); | 1198 /// m() => F(null, 42); |
| 1126 /// | 1199 /// |
| 1127 R visitTypedefTypeLiteralInvoke( | 1200 R visitTypedefTypeLiteralInvoke( |
| 1128 Send node, | 1201 Send node, |
| 1129 ConstantExpression constant, | 1202 ConstantExpression constant, |
| 1130 NodeList arguments, | 1203 NodeList arguments, |
| 1131 CallStructure callStructure, | 1204 CallStructure callStructure, |
| 1132 A arg); | 1205 A arg); |
| 1133 | 1206 |
| 1134 /// Assignment of [rhs] to the type literal for typedef [element]. | 1207 /// Assignment of [rhs] to the type literal for typedef [element]. |
| 1135 /// | 1208 /// |
| 1136 /// For instance | 1209 /// For instance: |
| 1210 /// |
| 1137 /// typedef F(); | 1211 /// typedef F(); |
| 1138 /// m() { F = rhs; } | 1212 /// m() { F = rhs; } |
| 1139 /// | 1213 /// |
| 1140 R visitTypedefTypeLiteralSet( | 1214 R visitTypedefTypeLiteralSet( |
| 1141 SendSet node, | 1215 SendSet node, |
| 1142 ConstantExpression constant, | 1216 ConstantExpression constant, |
| 1143 Node rhs, | 1217 Node rhs, |
| 1144 A arg); | 1218 A arg); |
| 1145 | 1219 |
| 1146 /// Read of the type literal for type variable [element]. | 1220 /// Read of the type literal for type variable [element]. |
| 1147 /// | 1221 /// |
| 1148 /// For instance | 1222 /// For instance: |
| 1223 /// |
| 1149 /// class C<T> { | 1224 /// class C<T> { |
| 1150 /// m() => T; | 1225 /// m() => T; |
| 1151 /// } | 1226 /// } |
| 1152 /// | 1227 /// |
| 1153 R visitTypeVariableTypeLiteralGet( | 1228 R visitTypeVariableTypeLiteralGet( |
| 1154 Send node, | 1229 Send node, |
| 1155 TypeVariableElement element, | 1230 TypeVariableElement element, |
| 1156 A arg); | 1231 A arg); |
| 1157 | 1232 |
| 1158 /// Invocation of the type literal for type variable [element] with | 1233 /// Invocation of the type literal for type variable [element] with |
| 1159 /// [arguments]. | 1234 /// [arguments]. |
| 1160 /// | 1235 /// |
| 1161 /// For instance | 1236 /// For instance: |
| 1237 /// |
| 1162 /// class C<T> { | 1238 /// class C<T> { |
| 1163 /// m() { T(null, 42); } | 1239 /// m() { T(null, 42); } |
| 1164 /// } | 1240 /// } |
| 1165 /// | 1241 /// |
| 1166 R visitTypeVariableTypeLiteralInvoke( | 1242 R visitTypeVariableTypeLiteralInvoke( |
| 1167 Send node, | 1243 Send node, |
| 1168 TypeVariableElement element, | 1244 TypeVariableElement element, |
| 1169 NodeList arguments, | 1245 NodeList arguments, |
| 1170 CallStructure callStructure, | 1246 CallStructure callStructure, |
| 1171 A arg); | 1247 A arg); |
| 1172 | 1248 |
| 1173 /// Assignment of [rhs] to the type literal for type variable [element]. | 1249 /// Assignment of [rhs] to the type literal for type variable [element]. |
| 1174 /// | 1250 /// |
| 1175 /// For instance | 1251 /// For instance: |
| 1252 /// |
| 1176 /// class C<T> { | 1253 /// class C<T> { |
| 1177 /// m() { T = rhs; } | 1254 /// m() { T = rhs; } |
| 1178 /// } | 1255 /// } |
| 1179 /// | 1256 /// |
| 1180 R visitTypeVariableTypeLiteralSet( | 1257 R visitTypeVariableTypeLiteralSet( |
| 1181 SendSet node, | 1258 SendSet node, |
| 1182 TypeVariableElement element, | 1259 TypeVariableElement element, |
| 1183 Node rhs, | 1260 Node rhs, |
| 1184 A arg); | 1261 A arg); |
| 1185 | 1262 |
| 1186 /// Read of the type literal for `dynamic`. | 1263 /// Read of the type literal for `dynamic`. |
| 1187 /// | 1264 /// |
| 1188 /// For instance | 1265 /// For instance: |
| 1266 /// |
| 1189 /// m() => dynamic; | 1267 /// m() => dynamic; |
| 1190 /// | 1268 /// |
| 1191 R visitDynamicTypeLiteralGet( | 1269 R visitDynamicTypeLiteralGet( |
| 1192 Send node, | 1270 Send node, |
| 1193 ConstantExpression constant, | 1271 ConstantExpression constant, |
| 1194 A arg); | 1272 A arg); |
| 1195 | 1273 |
| 1196 /// Invocation of the type literal for `dynamic` with [arguments]. | 1274 /// Invocation of the type literal for `dynamic` with [arguments]. |
| 1197 /// | 1275 /// |
| 1198 /// For instance | 1276 /// For instance: |
| 1277 /// |
| 1199 /// m() { dynamic(null, 42); } | 1278 /// m() { dynamic(null, 42); } |
| 1200 /// | 1279 /// |
| 1201 R visitDynamicTypeLiteralInvoke( | 1280 R visitDynamicTypeLiteralInvoke( |
| 1202 Send node, | 1281 Send node, |
| 1203 ConstantExpression constant, | 1282 ConstantExpression constant, |
| 1204 NodeList arguments, | 1283 NodeList arguments, |
| 1205 CallStructure callStructure, | 1284 CallStructure callStructure, |
| 1206 A arg); | 1285 A arg); |
| 1207 | 1286 |
| 1208 /// Assignment of [rhs] to the type literal for `dynamic`. | 1287 /// Assignment of [rhs] to the type literal for `dynamic`. |
| 1209 /// | 1288 /// |
| 1210 /// For instance | 1289 /// For instance: |
| 1290 /// |
| 1211 /// m() { dynamic = rhs; } | 1291 /// m() { dynamic = rhs; } |
| 1212 /// | 1292 /// |
| 1213 R visitDynamicTypeLiteralSet( | 1293 R visitDynamicTypeLiteralSet( |
| 1214 SendSet node, | 1294 SendSet node, |
| 1215 ConstantExpression constant, | 1295 ConstantExpression constant, |
| 1216 Node rhs, | 1296 Node rhs, |
| 1217 A arg); | 1297 A arg); |
| 1218 | 1298 |
| 1219 /// Call to `assert` with [expression] as the condition. | 1299 /// Call to `assert` with [expression] as the condition. |
| 1220 /// | 1300 /// |
| 1221 /// For instance: | 1301 /// For instance: |
| 1302 /// |
| 1222 /// m() { assert(expression); } | 1303 /// m() { assert(expression); } |
| 1223 /// | 1304 /// |
| 1224 R visitAssert( | 1305 R visitAssert( |
| 1225 Send node, | 1306 Send node, |
| 1226 Node expression, | 1307 Node expression, |
| 1227 A arg); | 1308 A arg); |
| 1228 | 1309 |
| 1229 /// Call to `assert` with the wrong number of [arguments]. | 1310 /// Call to `assert` with the wrong number of [arguments]. |
| 1230 /// | 1311 /// |
| 1231 /// For instance: | 1312 /// For instance: |
| 1313 /// |
| 1232 /// m() { assert(); } | 1314 /// m() { assert(); } |
| 1315 /// |
| 1233 /// or | 1316 /// or |
| 1317 /// |
| 1234 /// m() { assert(expression1, expression2); } | 1318 /// m() { assert(expression1, expression2); } |
| 1235 /// | 1319 /// |
| 1236 R errorInvalidAssert( | 1320 R errorInvalidAssert( |
| 1237 Send node, | 1321 Send node, |
| 1238 NodeList arguments, | 1322 NodeList arguments, |
| 1239 A arg); | 1323 A arg); |
| 1240 | 1324 |
| 1241 /// Binary expression `left operator right` where [operator] is a user | 1325 /// Binary expression `left operator right` where [operator] is a user |
| 1242 /// definable operator. Binary expressions using operator `==` are handled | 1326 /// definable operator. Binary expressions using operator `==` are handled |
| 1243 /// by [visitEquals] and index operations `a[b]` are handled by [visitIndex]. | 1327 /// by [visitEquals] and index operations `a[b]` are handled by [visitIndex]. |
| 1244 /// | 1328 /// |
| 1245 /// For instance: | 1329 /// For instance: |
| 1330 /// |
| 1246 /// add(a, b) => a + b; | 1331 /// add(a, b) => a + b; |
| 1247 /// sub(a, b) => a - b; | 1332 /// sub(a, b) => a - b; |
| 1248 /// mul(a, b) => a * b; | 1333 /// mul(a, b) => a * b; |
| 1249 /// | 1334 /// |
| 1250 R visitBinary( | 1335 R visitBinary( |
| 1251 Send node, | 1336 Send node, |
| 1252 Node left, | 1337 Node left, |
| 1253 BinaryOperator operator, | 1338 BinaryOperator operator, |
| 1254 Node right, | 1339 Node right, |
| 1255 A arg); | 1340 A arg); |
| 1256 | 1341 |
| 1257 /// Binary expression `super operator argument` where [operator] is a user | 1342 /// Binary expression `super operator argument` where [operator] is a user |
| 1258 /// definable operator implemented on a superclass by [function]. Binary | 1343 /// definable operator implemented on a superclass by [function]. Binary |
| 1259 /// expressions using operator `==` are handled by [visitSuperEquals]. | 1344 /// expressions using operator `==` are handled by [visitSuperEquals]. |
| 1260 /// | 1345 /// |
| 1261 /// For instance: | 1346 /// For instance: |
| 1347 /// |
| 1262 /// class B { | 1348 /// class B { |
| 1263 /// operator +(_) => null; | 1349 /// operator +(_) => null; |
| 1264 /// } | 1350 /// } |
| 1265 /// class C extends B { | 1351 /// class C extends B { |
| 1266 /// m(a) => super + a; | 1352 /// m(a) => super + a; |
| 1267 /// } | 1353 /// } |
| 1268 /// | 1354 /// |
| 1269 R visitSuperBinary( | 1355 R visitSuperBinary( |
| 1270 Send node, | 1356 Send node, |
| 1271 FunctionElement function, | 1357 FunctionElement function, |
| 1272 BinaryOperator operator, | 1358 BinaryOperator operator, |
| 1273 Node argument, | 1359 Node argument, |
| 1274 A arg); | 1360 A arg); |
| 1275 | 1361 |
| 1276 /// Binary operation on the unresolved super [element]. | 1362 /// Binary operation on the unresolved super [element]. |
| 1277 /// | 1363 /// |
| 1278 /// For instance | 1364 /// For instance: |
| 1365 /// |
| 1279 /// class B { | 1366 /// class B { |
| 1280 /// } | 1367 /// } |
| 1281 /// class C extends B { | 1368 /// class C extends B { |
| 1282 /// m() => super + 42; | 1369 /// m() => super + 42; |
| 1283 /// } | 1370 /// } |
| 1284 /// | 1371 /// |
| 1285 R visitUnresolvedSuperBinary( | 1372 R visitUnresolvedSuperBinary( |
| 1286 Send node, | 1373 Send node, |
| 1287 Element element, | 1374 Element element, |
| 1288 BinaryOperator operator, | 1375 BinaryOperator operator, |
| 1289 Node argument, | 1376 Node argument, |
| 1290 A arg); | 1377 A arg); |
| 1291 | 1378 |
| 1292 /// Index expression `receiver[index]`. | 1379 /// Index expression `receiver[index]`. |
| 1293 /// | 1380 /// |
| 1294 /// For instance: | 1381 /// For instance: |
| 1382 /// |
| 1295 /// lookup(a, b) => a[b]; | 1383 /// lookup(a, b) => a[b]; |
| 1296 /// | 1384 /// |
| 1297 R visitIndex( | 1385 R visitIndex( |
| 1298 Send node, | 1386 Send node, |
| 1299 Node receiver, | 1387 Node receiver, |
| 1300 Node index, | 1388 Node index, |
| 1301 A arg); | 1389 A arg); |
| 1302 | 1390 |
| 1303 /// Prefix operation on an index expression `operator receiver[index]` where | 1391 /// Prefix operation on an index expression `operator receiver[index]` where |
| 1304 /// the operation is defined by [operator]. | 1392 /// the operation is defined by [operator]. |
| 1305 /// | 1393 /// |
| 1306 /// For instance: | 1394 /// For instance: |
| 1395 /// |
| 1307 /// lookup(a, b) => --a[b]; | 1396 /// lookup(a, b) => --a[b]; |
| 1308 /// | 1397 /// |
| 1309 R visitIndexPrefix( | 1398 R visitIndexPrefix( |
| 1310 Send node, | 1399 Send node, |
| 1311 Node receiver, | 1400 Node receiver, |
| 1312 Node index, | 1401 Node index, |
| 1313 IncDecOperator operator, | 1402 IncDecOperator operator, |
| 1314 A arg); | 1403 A arg); |
| 1315 | 1404 |
| 1316 /// Postfix operation on an index expression `receiver[index] operator` where | 1405 /// Postfix operation on an index expression `receiver[index] operator` where |
| 1317 /// the operation is defined by [operator]. | 1406 /// the operation is defined by [operator]. |
| 1318 /// | 1407 /// |
| 1319 /// For instance: | 1408 /// For instance: |
| 1409 /// |
| 1320 /// lookup(a, b) => a[b]++; | 1410 /// lookup(a, b) => a[b]++; |
| 1321 /// | 1411 /// |
| 1322 R visitIndexPostfix( | 1412 R visitIndexPostfix( |
| 1323 Send node, | 1413 Send node, |
| 1324 Node receiver, | 1414 Node receiver, |
| 1325 Node index, | 1415 Node index, |
| 1326 IncDecOperator operator, | 1416 IncDecOperator operator, |
| 1327 A arg); | 1417 A arg); |
| 1328 | 1418 |
| 1329 /// Index expression `super[index]` where 'operator []' is implemented on a | 1419 /// Index expression `super[index]` where 'operator []' is implemented on a |
| 1330 /// superclass by [function]. | 1420 /// superclass by [function]. |
| 1331 /// | 1421 /// |
| 1332 /// For instance: | 1422 /// For instance: |
| 1423 /// |
| 1333 /// class B { | 1424 /// class B { |
| 1334 /// operator [](_) => null; | 1425 /// operator [](_) => null; |
| 1335 /// } | 1426 /// } |
| 1336 /// class C extends B { | 1427 /// class C extends B { |
| 1337 /// m(a) => super[a]; | 1428 /// m(a) => super[a]; |
| 1338 /// } | 1429 /// } |
| 1339 /// | 1430 /// |
| 1340 R visitSuperIndex( | 1431 R visitSuperIndex( |
| 1341 Send node, | 1432 Send node, |
| 1342 FunctionElement function, | 1433 FunctionElement function, |
| 1343 Node index, | 1434 Node index, |
| 1344 A arg); | 1435 A arg); |
| 1345 | 1436 |
| 1346 /// Index expression `super[index]` where 'operator []' is unresolved. | 1437 /// Index expression `super[index]` where 'operator []' is unresolved. |
| 1347 /// | 1438 /// |
| 1348 /// For instance: | 1439 /// For instance: |
| 1440 /// |
| 1349 /// class B {} | 1441 /// class B {} |
| 1350 /// class C extends B { | 1442 /// class C extends B { |
| 1351 /// m(a) => super[a]; | 1443 /// m(a) => super[a]; |
| 1352 /// } | 1444 /// } |
| 1353 /// | 1445 /// |
| 1354 R visitUnresolvedSuperIndex( | 1446 R visitUnresolvedSuperIndex( |
| 1355 Send node, | 1447 Send node, |
| 1356 Element element, | 1448 Element element, |
| 1357 Node index, | 1449 Node index, |
| 1358 A arg); | 1450 A arg); |
| 1359 | 1451 |
| 1360 /// Prefix operation on an index expression `operator super[index]` where | 1452 /// Prefix operation on an index expression `operator super[index]` where |
| 1361 /// 'operator []' is implemented on a superclass by [indexFunction] and | 1453 /// 'operator []' is implemented on a superclass by [indexFunction] and |
| 1362 /// 'operator []=' is implemented on by [indexSetFunction] and the operation | 1454 /// 'operator []=' is implemented on by [indexSetFunction] and the operation |
| 1363 /// is defined by [operator]. | 1455 /// is defined by [operator]. |
| 1364 /// | 1456 /// |
| 1365 /// For instance: | 1457 /// For instance: |
| 1458 /// |
| 1366 /// class B { | 1459 /// class B { |
| 1367 /// operator [](_) => null; | 1460 /// operator [](_) => null; |
| 1368 /// operator []=(a, b) {} | 1461 /// operator []=(a, b) {} |
| 1369 /// } | 1462 /// } |
| 1370 /// class C extends B { | 1463 /// class C extends B { |
| 1371 /// m(a) => --super[a]; | 1464 /// m(a) => --super[a]; |
| 1372 /// } | 1465 /// } |
| 1373 /// | 1466 /// |
| 1374 R visitSuperIndexPrefix( | 1467 R visitSuperIndexPrefix( |
| 1375 Send node, | 1468 Send node, |
| 1376 MethodElement indexFunction, | 1469 MethodElement indexFunction, |
| 1377 MethodElement indexSetFunction, | 1470 MethodElement indexSetFunction, |
| 1378 Node index, | 1471 Node index, |
| 1379 IncDecOperator operator, | 1472 IncDecOperator operator, |
| 1380 A arg); | 1473 A arg); |
| 1381 | 1474 |
| 1382 /// Postfix operation on an index expression `super[index] operator` where | 1475 /// Postfix operation on an index expression `super[index] operator` where |
| 1383 /// 'operator []' is implemented on a superclass by [indexFunction] and | 1476 /// 'operator []' is implemented on a superclass by [indexFunction] and |
| 1384 /// 'operator []=' is implemented on by [indexSetFunction] and the operation | 1477 /// 'operator []=' is implemented on by [indexSetFunction] and the operation |
| 1385 /// is defined by [operator]. | 1478 /// is defined by [operator]. |
| 1386 /// | 1479 /// |
| 1387 /// For instance: | 1480 /// For instance: |
| 1481 /// |
| 1388 /// class B { | 1482 /// class B { |
| 1389 /// operator [](_) => null; | 1483 /// operator [](_) => null; |
| 1390 /// operator []=(a, b) {} | 1484 /// operator []=(a, b) {} |
| 1391 /// } | 1485 /// } |
| 1392 /// class C extends B { | 1486 /// class C extends B { |
| 1393 /// m(a) => super[a]++; | 1487 /// m(a) => super[a]++; |
| 1394 /// } | 1488 /// } |
| 1395 /// | 1489 /// |
| 1396 R visitSuperIndexPostfix( | 1490 R visitSuperIndexPostfix( |
| 1397 Send node, | 1491 Send node, |
| 1398 MethodElement indexFunction, | 1492 MethodElement indexFunction, |
| 1399 MethodElement indexSetFunction, | 1493 MethodElement indexSetFunction, |
| 1400 Node index, | 1494 Node index, |
| 1401 IncDecOperator operator, | 1495 IncDecOperator operator, |
| 1402 A arg); | 1496 A arg); |
| 1403 | 1497 |
| 1404 /// Prefix operation on an index expression `operator super[index]` where | 1498 /// Prefix operation on an index expression `operator super[index]` where |
| 1405 /// 'operator []' is unresolved, 'operator []=' is defined by [setter], and | 1499 /// 'operator []' is unresolved, 'operator []=' is defined by [setter], and |
| 1406 /// the operation is defined by [operator]. | 1500 /// the operation is defined by [operator]. |
| 1407 /// | 1501 /// |
| 1408 /// For instance: | 1502 /// For instance: |
| 1503 /// |
| 1409 /// class B { | 1504 /// class B { |
| 1410 /// operator []=(a, b) {} | 1505 /// operator []=(a, b) {} |
| 1411 /// } | 1506 /// } |
| 1412 /// class C extends B { | 1507 /// class C extends B { |
| 1413 /// m(a) => --super[a]; | 1508 /// m(a) => --super[a]; |
| 1414 /// } | 1509 /// } |
| 1415 /// | 1510 /// |
| 1416 R visitUnresolvedSuperGetterIndexPrefix( | 1511 R visitUnresolvedSuperGetterIndexPrefix( |
| 1417 Send node, | 1512 Send node, |
| 1418 Element element, | 1513 Element element, |
| 1419 MethodElement setter, | 1514 MethodElement setter, |
| 1420 Node index, | 1515 Node index, |
| 1421 IncDecOperator operator, | 1516 IncDecOperator operator, |
| 1422 A arg); | 1517 A arg); |
| 1423 | 1518 |
| 1424 /// Postfix operation on an index expression `super[index] operator` where | 1519 /// Postfix operation on an index expression `super[index] operator` where |
| 1425 /// 'operator []' is unresolved, 'operator []=' is defined by [setter], and | 1520 /// 'operator []' is unresolved, 'operator []=' is defined by [setter], and |
| 1426 /// the operation is defined by [operator]. | 1521 /// the operation is defined by [operator]. |
| 1427 /// | 1522 /// |
| 1428 /// For instance: | 1523 /// For instance: |
| 1524 /// |
| 1429 /// class B { | 1525 /// class B { |
| 1430 /// operator []=(a, b) {} | 1526 /// operator []=(a, b) {} |
| 1431 /// } | 1527 /// } |
| 1432 /// class C extends B { | 1528 /// class C extends B { |
| 1433 /// m(a) => super[a]++; | 1529 /// m(a) => super[a]++; |
| 1434 /// } | 1530 /// } |
| 1435 /// | 1531 /// |
| 1436 R visitUnresolvedSuperGetterIndexPostfix( | 1532 R visitUnresolvedSuperGetterIndexPostfix( |
| 1437 Send node, | 1533 Send node, |
| 1438 Element element, | 1534 Element element, |
| 1439 MethodElement setter, | 1535 MethodElement setter, |
| 1440 Node index, | 1536 Node index, |
| 1441 IncDecOperator operator, | 1537 IncDecOperator operator, |
| 1442 A arg); | 1538 A arg); |
| 1443 | 1539 |
| 1444 /// Prefix operation on an index expression `operator super[index]` where | 1540 /// Prefix operation on an index expression `operator super[index]` where |
| 1445 /// 'operator []' is implemented on a superclass by [indexFunction] and | 1541 /// 'operator []' is implemented on a superclass by [indexFunction] and |
| 1446 /// 'operator []=' is unresolved and the operation is defined by [operator]. | 1542 /// 'operator []=' is unresolved and the operation is defined by [operator]. |
| 1447 /// | 1543 /// |
| 1448 /// For instance: | 1544 /// For instance: |
| 1545 /// |
| 1449 /// class B { | 1546 /// class B { |
| 1450 /// operator [](_) => 42; | 1547 /// operator [](_) => 42; |
| 1451 /// } | 1548 /// } |
| 1452 /// class C extends B { | 1549 /// class C extends B { |
| 1453 /// m(a) => --super[a]; | 1550 /// m(a) => --super[a]; |
| 1454 /// } | 1551 /// } |
| 1455 /// | 1552 /// |
| 1456 R visitUnresolvedSuperSetterIndexPrefix( | 1553 R visitUnresolvedSuperSetterIndexPrefix( |
| 1457 Send node, | 1554 Send node, |
| 1458 MethodElement indexFunction, | 1555 MethodElement indexFunction, |
| 1459 Element element, | 1556 Element element, |
| 1460 Node index, | 1557 Node index, |
| 1461 IncDecOperator operator, | 1558 IncDecOperator operator, |
| 1462 A arg); | 1559 A arg); |
| 1463 | 1560 |
| 1464 /// Postfix operation on an index expression `super[index] operator` where | 1561 /// Postfix operation on an index expression `super[index] operator` where |
| 1465 /// 'operator []' is implemented on a superclass by [indexFunction] and | 1562 /// 'operator []' is implemented on a superclass by [indexFunction] and |
| 1466 /// 'operator []=' is unresolved and the operation is defined by [operator]. | 1563 /// 'operator []=' is unresolved and the operation is defined by [operator]. |
| 1467 /// | 1564 /// |
| 1468 /// For instance: | 1565 /// For instance: |
| 1566 /// |
| 1469 /// class B { | 1567 /// class B { |
| 1470 /// operator [](_) => 42; | 1568 /// operator [](_) => 42; |
| 1471 /// } | 1569 /// } |
| 1472 /// class C extends B { | 1570 /// class C extends B { |
| 1473 /// m(a) => super[a]++; | 1571 /// m(a) => super[a]++; |
| 1474 /// } | 1572 /// } |
| 1475 /// | 1573 /// |
| 1476 R visitUnresolvedSuperSetterIndexPostfix( | 1574 R visitUnresolvedSuperSetterIndexPostfix( |
| 1477 Send node, | 1575 Send node, |
| 1478 MethodElement indexFunction, | 1576 MethodElement indexFunction, |
| 1479 Element element, | 1577 Element element, |
| 1480 Node index, | 1578 Node index, |
| 1481 IncDecOperator operator, | 1579 IncDecOperator operator, |
| 1482 A arg); | 1580 A arg); |
| 1483 | 1581 |
| 1484 /// Prefix operation on an index expression `super[index] operator` where | 1582 /// Prefix operation on an index expression `super[index] operator` where |
| 1485 /// both 'operator []' and 'operator []=' are unresolved and the operation is | 1583 /// both 'operator []' and 'operator []=' are unresolved and the operation is |
| 1486 /// defined by [operator]. | 1584 /// defined by [operator]. |
| 1487 /// | 1585 /// |
| 1488 /// For instance: | 1586 /// For instance: |
| 1587 /// |
| 1489 /// class B { | 1588 /// class B { |
| 1490 /// operator [](_) => 42; | 1589 /// operator [](_) => 42; |
| 1491 /// } | 1590 /// } |
| 1492 /// class C extends B { | 1591 /// class C extends B { |
| 1493 /// m(a) => super[a]++; | 1592 /// m(a) => super[a]++; |
| 1494 /// } | 1593 /// } |
| 1495 /// | 1594 /// |
| 1496 R visitUnresolvedSuperIndexPrefix( | 1595 R visitUnresolvedSuperIndexPrefix( |
| 1497 Send node, | 1596 Send node, |
| 1498 Element element, | 1597 Element element, |
| 1499 Node index, | 1598 Node index, |
| 1500 IncDecOperator operator, | 1599 IncDecOperator operator, |
| 1501 A arg); | 1600 A arg); |
| 1502 | 1601 |
| 1503 /// Postfix operation on an index expression `super[index] operator` where | 1602 /// Postfix operation on an index expression `super[index] operator` where |
| 1504 /// both 'operator []' and 'operator []=' are unresolved and the operation is | 1603 /// both 'operator []' and 'operator []=' are unresolved and the operation is |
| 1505 /// defined by [operator]. | 1604 /// defined by [operator]. |
| 1506 /// | 1605 /// |
| 1507 /// For instance: | 1606 /// For instance: |
| 1607 /// |
| 1508 /// class B { | 1608 /// class B { |
| 1509 /// operator [](_) => 42; | 1609 /// operator [](_) => 42; |
| 1510 /// } | 1610 /// } |
| 1511 /// class C extends B { | 1611 /// class C extends B { |
| 1512 /// m(a) => super[a]++; | 1612 /// m(a) => super[a]++; |
| 1513 /// } | 1613 /// } |
| 1514 /// | 1614 /// |
| 1515 R visitUnresolvedSuperIndexPostfix( | 1615 R visitUnresolvedSuperIndexPostfix( |
| 1516 Send node, | 1616 Send node, |
| 1517 Element element, | 1617 Element element, |
| 1518 Node index, | 1618 Node index, |
| 1519 IncDecOperator operator, | 1619 IncDecOperator operator, |
| 1520 A arg); | 1620 A arg); |
| 1521 | 1621 |
| 1522 /// Binary expression `left == right`. | 1622 /// Binary expression `left == right`. |
| 1523 /// | 1623 /// |
| 1524 /// For instance: | 1624 /// For instance: |
| 1625 /// |
| 1525 /// neq(a, b) => a != b; | 1626 /// neq(a, b) => a != b; |
| 1526 /// | 1627 /// |
| 1527 R visitNotEquals( | 1628 R visitNotEquals( |
| 1528 Send node, | 1629 Send node, |
| 1529 Node left, | 1630 Node left, |
| 1530 Node right, | 1631 Node right, |
| 1531 A arg); | 1632 A arg); |
| 1532 | 1633 |
| 1533 /// Binary expression `super != argument` where `==` is implemented on a | 1634 /// Binary expression `super != argument` where `==` is implemented on a |
| 1534 /// superclass by [function]. | 1635 /// superclass by [function]. |
| 1535 /// | 1636 /// |
| 1536 /// For instance: | 1637 /// For instance: |
| 1638 /// |
| 1537 /// class B { | 1639 /// class B { |
| 1538 /// operator +(_) => null; | 1640 /// operator +(_) => null; |
| 1539 /// } | 1641 /// } |
| 1540 /// class C extends B { | 1642 /// class C extends B { |
| 1541 /// m(a) => super + a; | 1643 /// m(a) => super + a; |
| 1542 /// } | 1644 /// } |
| 1543 /// | 1645 /// |
| 1544 R visitSuperNotEquals( | 1646 R visitSuperNotEquals( |
| 1545 Send node, | 1647 Send node, |
| 1546 FunctionElement function, | 1648 FunctionElement function, |
| 1547 Node argument, | 1649 Node argument, |
| 1548 A arg); | 1650 A arg); |
| 1549 | 1651 |
| 1550 /// Binary expression `left == right`. | 1652 /// Binary expression `left == right`. |
| 1551 /// | 1653 /// |
| 1552 /// For instance: | 1654 /// For instance: |
| 1655 /// |
| 1553 /// eq(a, b) => a == b; | 1656 /// eq(a, b) => a == b; |
| 1554 /// | 1657 /// |
| 1555 R visitEquals( | 1658 R visitEquals( |
| 1556 Send node, | 1659 Send node, |
| 1557 Node left, | 1660 Node left, |
| 1558 Node right, | 1661 Node right, |
| 1559 A arg); | 1662 A arg); |
| 1560 | 1663 |
| 1561 /// Binary expression `super == argument` where `==` is implemented on a | 1664 /// Binary expression `super == argument` where `==` is implemented on a |
| 1562 /// superclass by [function]. | 1665 /// superclass by [function]. |
| 1563 /// | 1666 /// |
| 1564 /// For instance: | 1667 /// For instance: |
| 1668 /// |
| 1565 /// class B { | 1669 /// class B { |
| 1566 /// operator ==(_) => null; | 1670 /// operator ==(_) => null; |
| 1567 /// } | 1671 /// } |
| 1568 /// class C extends B { | 1672 /// class C extends B { |
| 1569 /// m(a) => super == a; | 1673 /// m(a) => super == a; |
| 1570 /// } | 1674 /// } |
| 1571 /// | 1675 /// |
| 1572 R visitSuperEquals( | 1676 R visitSuperEquals( |
| 1573 Send node, | 1677 Send node, |
| 1574 FunctionElement function, | 1678 FunctionElement function, |
| 1575 Node argument, | 1679 Node argument, |
| 1576 A arg); | 1680 A arg); |
| 1577 | 1681 |
| 1578 /// Unary expression `operator expression` where [operator] is a user | 1682 /// Unary expression `operator expression` where [operator] is a user |
| 1579 /// definable operator. | 1683 /// definable operator. |
| 1580 /// | 1684 /// |
| 1581 /// For instance: | 1685 /// For instance: |
| 1686 /// |
| 1582 /// neg(a, b) => -a; | 1687 /// neg(a, b) => -a; |
| 1583 /// comp(a, b) => ~a; | 1688 /// comp(a, b) => ~a; |
| 1584 /// | 1689 /// |
| 1585 R visitUnary( | 1690 R visitUnary( |
| 1586 Send node, | 1691 Send node, |
| 1587 UnaryOperator operator, | 1692 UnaryOperator operator, |
| 1588 Node expression, | 1693 Node expression, |
| 1589 A arg); | 1694 A arg); |
| 1590 | 1695 |
| 1591 /// Unary expression `operator super` where [operator] is a user definable | 1696 /// Unary expression `operator super` where [operator] is a user definable |
| 1592 /// operator implemented on a superclass by [function]. | 1697 /// operator implemented on a superclass by [function]. |
| 1593 /// | 1698 /// |
| 1594 /// For instance: | 1699 /// For instance: |
| 1700 /// |
| 1595 /// class B { | 1701 /// class B { |
| 1596 /// operator -() => null; | 1702 /// operator -() => null; |
| 1597 /// } | 1703 /// } |
| 1598 /// class C extends B { | 1704 /// class C extends B { |
| 1599 /// m(a) => -super; | 1705 /// m(a) => -super; |
| 1600 /// } | 1706 /// } |
| 1601 /// | 1707 /// |
| 1602 R visitSuperUnary( | 1708 R visitSuperUnary( |
| 1603 Send node, | 1709 Send node, |
| 1604 UnaryOperator operator, | 1710 UnaryOperator operator, |
| 1605 FunctionElement function, | 1711 FunctionElement function, |
| 1606 A arg); | 1712 A arg); |
| 1607 | 1713 |
| 1608 /// Unary operation on the unresolved super [element]. | 1714 /// Unary operation on the unresolved super [element]. |
| 1609 /// | 1715 /// |
| 1610 /// For instance | 1716 /// For instance: |
| 1717 /// |
| 1611 /// class B { | 1718 /// class B { |
| 1612 /// } | 1719 /// } |
| 1613 /// class C extends B { | 1720 /// class C extends B { |
| 1614 /// m() => -super; | 1721 /// m() => -super; |
| 1615 /// } | 1722 /// } |
| 1616 /// | 1723 /// |
| 1617 R visitUnresolvedSuperUnary( | 1724 R visitUnresolvedSuperUnary( |
| 1618 Send node, | 1725 Send node, |
| 1619 UnaryOperator operator, | 1726 UnaryOperator operator, |
| 1620 Element element, | 1727 Element element, |
| 1621 A arg); | 1728 A arg); |
| 1622 | 1729 |
| 1623 /// Unary expression `!expression`. | 1730 /// Unary expression `!expression`. |
| 1624 /// | 1731 /// |
| 1625 /// For instance: | 1732 /// For instance: |
| 1733 /// |
| 1626 /// not(a) => !a; | 1734 /// not(a) => !a; |
| 1627 /// | 1735 /// |
| 1628 R visitNot( | 1736 R visitNot( |
| 1629 Send node, | 1737 Send node, |
| 1630 Node expression, | 1738 Node expression, |
| 1631 A arg); | 1739 A arg); |
| 1632 | 1740 |
| 1633 /// Index set expression `receiver[index] = rhs`. | 1741 /// Index set expression `receiver[index] = rhs`. |
| 1634 /// | 1742 /// |
| 1635 /// For instance: | 1743 /// For instance: |
| 1744 /// |
| 1636 /// m(receiver, index, rhs) => receiver[index] = rhs; | 1745 /// m(receiver, index, rhs) => receiver[index] = rhs; |
| 1637 /// | 1746 /// |
| 1638 R visitIndexSet( | 1747 R visitIndexSet( |
| 1639 SendSet node, | 1748 SendSet node, |
| 1640 Node receiver, | 1749 Node receiver, |
| 1641 Node index, | 1750 Node index, |
| 1642 Node rhs, | 1751 Node rhs, |
| 1643 A arg); | 1752 A arg); |
| 1644 | 1753 |
| 1645 /// Index set expression `super[index] = rhs` where `operator []=` is defined | 1754 /// Index set expression `super[index] = rhs` where `operator []=` is defined |
| 1646 /// on a superclass by [function]. | 1755 /// on a superclass by [function]. |
| 1647 /// | 1756 /// |
| 1648 /// For instance: | 1757 /// For instance: |
| 1758 /// |
| 1649 /// class B { | 1759 /// class B { |
| 1650 /// operator []=(a, b) {} | 1760 /// operator []=(a, b) {} |
| 1651 /// } | 1761 /// } |
| 1652 /// class C extends B { | 1762 /// class C extends B { |
| 1653 /// m(a, b) => super[a] = b; | 1763 /// m(a, b) => super[a] = b; |
| 1654 /// } | 1764 /// } |
| 1655 /// | 1765 /// |
| 1656 R visitSuperIndexSet( | 1766 R visitSuperIndexSet( |
| 1657 SendSet node, | 1767 SendSet node, |
| 1658 FunctionElement function, | 1768 FunctionElement function, |
| 1659 Node index, | 1769 Node index, |
| 1660 Node rhs, | 1770 Node rhs, |
| 1661 A arg); | 1771 A arg); |
| 1662 | 1772 |
| 1663 /// Index set expression `super[index] = rhs` where `operator []=` is | 1773 /// Index set expression `super[index] = rhs` where `operator []=` is |
| 1664 /// undefined. | 1774 /// undefined. |
| 1665 /// | 1775 /// |
| 1666 /// For instance | 1776 /// For instance: |
| 1777 /// |
| 1667 /// class B { | 1778 /// class B { |
| 1668 /// } | 1779 /// } |
| 1669 /// class C extends B { | 1780 /// class C extends B { |
| 1670 /// m() => super[1] = 42; | 1781 /// m() => super[1] = 42; |
| 1671 /// } | 1782 /// } |
| 1672 /// | 1783 /// |
| 1673 R visitUnresolvedSuperIndexSet( | 1784 R visitUnresolvedSuperIndexSet( |
| 1674 Send node, | 1785 Send node, |
| 1675 Element element, | 1786 Element element, |
| 1676 Node index, | 1787 Node index, |
| 1677 Node rhs, | 1788 Node rhs, |
| 1678 A arg); | 1789 A arg); |
| 1679 | 1790 |
| 1680 /// If-null, ??, expression with operands [left] and [right]. | 1791 /// If-null, ??, expression with operands [left] and [right]. |
| 1681 /// | 1792 /// |
| 1682 /// For instance | 1793 /// For instance: |
| 1794 /// |
| 1683 /// m() => left ?? right; | 1795 /// m() => left ?? right; |
| 1684 /// | 1796 /// |
| 1685 R visitIfNull( | 1797 R visitIfNull( |
| 1686 Send node, | 1798 Send node, |
| 1687 Node left, | 1799 Node left, |
| 1688 Node right, | 1800 Node right, |
| 1689 A arg); | 1801 A arg); |
| 1690 | 1802 |
| 1691 /// Logical and, &&, expression with operands [left] and [right]. | 1803 /// Logical and, &&, expression with operands [left] and [right]. |
| 1692 /// | 1804 /// |
| 1693 /// For instance | 1805 /// For instance: |
| 1806 /// |
| 1694 /// m() => left && right; | 1807 /// m() => left && right; |
| 1695 /// | 1808 /// |
| 1696 R visitLogicalAnd( | 1809 R visitLogicalAnd( |
| 1697 Send node, | 1810 Send node, |
| 1698 Node left, | 1811 Node left, |
| 1699 Node right, | 1812 Node right, |
| 1700 A arg); | 1813 A arg); |
| 1701 | 1814 |
| 1702 /// Logical or, ||, expression with operands [left] and [right]. | 1815 /// Logical or, ||, expression with operands [left] and [right]. |
| 1703 /// | 1816 /// |
| 1704 /// For instance | 1817 /// For instance: |
| 1818 /// |
| 1705 /// m() => left || right; | 1819 /// m() => left || right; |
| 1706 /// | 1820 /// |
| 1707 R visitLogicalOr( | 1821 R visitLogicalOr( |
| 1708 Send node, | 1822 Send node, |
| 1709 Node left, | 1823 Node left, |
| 1710 Node right, | 1824 Node right, |
| 1711 A arg); | 1825 A arg); |
| 1712 | 1826 |
| 1713 /// Is test of [expression] against [type]. | 1827 /// Is test of [expression] against [type]. |
| 1714 /// | 1828 /// |
| 1715 /// For instance | 1829 /// For instance: |
| 1830 /// |
| 1716 /// class C {} | 1831 /// class C {} |
| 1717 /// m() => expression is C; | 1832 /// m() => expression is C; |
| 1718 /// | 1833 /// |
| 1719 R visitIs( | 1834 R visitIs( |
| 1720 Send node, | 1835 Send node, |
| 1721 Node expression, | 1836 Node expression, |
| 1722 DartType type, | 1837 DartType type, |
| 1723 A arg); | 1838 A arg); |
| 1724 | 1839 |
| 1725 /// Is not test of [expression] against [type]. | 1840 /// Is not test of [expression] against [type]. |
| 1726 /// | 1841 /// |
| 1727 /// For instance | 1842 /// For instance: |
| 1843 /// |
| 1728 /// class C {} | 1844 /// class C {} |
| 1729 /// m() => expression is! C; | 1845 /// m() => expression is! C; |
| 1730 /// | 1846 /// |
| 1731 R visitIsNot( | 1847 R visitIsNot( |
| 1732 Send node, | 1848 Send node, |
| 1733 Node expression, | 1849 Node expression, |
| 1734 DartType type, | 1850 DartType type, |
| 1735 A arg); | 1851 A arg); |
| 1736 | 1852 |
| 1737 /// As cast of [expression] to [type]. | 1853 /// As cast of [expression] to [type]. |
| 1738 /// | 1854 /// |
| 1739 /// For instance | 1855 /// For instance: |
| 1856 /// |
| 1740 /// class C {} | 1857 /// class C {} |
| 1741 /// m() => expression as C; | 1858 /// m() => expression as C; |
| 1742 /// | 1859 /// |
| 1743 R visitAs( | 1860 R visitAs( |
| 1744 Send node, | 1861 Send node, |
| 1745 Node expression, | 1862 Node expression, |
| 1746 DartType type, | 1863 DartType type, |
| 1747 A arg); | 1864 A arg); |
| 1748 | 1865 |
| 1749 /// Compound assignment expression of [rhs] with [operator] of the property on | 1866 /// Compound assignment expression of [rhs] with [operator] of the property on |
| 1750 /// [receiver] whose getter and setter are defined by [getterSelector] and | 1867 /// [receiver] whose getter and setter are defined by [getterSelector] and |
| 1751 /// [setterSelector], respectively. | 1868 /// [setterSelector], respectively. |
| 1752 /// | 1869 /// |
| 1753 /// For instance: | 1870 /// For instance: |
| 1871 /// |
| 1754 /// m(receiver, rhs) => receiver.foo += rhs; | 1872 /// m(receiver, rhs) => receiver.foo += rhs; |
| 1755 /// | 1873 /// |
| 1756 R visitDynamicPropertyCompound( | 1874 R visitDynamicPropertyCompound( |
| 1757 Send node, | 1875 Send node, |
| 1758 Node receiver, | 1876 Node receiver, |
| 1759 AssignmentOperator operator, | 1877 AssignmentOperator operator, |
| 1760 Node rhs, | 1878 Node rhs, |
| 1761 Selector getterSelector, | 1879 Selector getterSelector, |
| 1762 Selector setterSelector, | 1880 Selector setterSelector, |
| 1763 A arg); | 1881 A arg); |
| 1764 | 1882 |
| 1765 /// Compound assignment expression of [rhs] with [operator] of the property on | 1883 /// Compound assignment expression of [rhs] with [operator] of the property on |
| 1766 /// a possibly null [receiver] whose getter and setter are defined by | 1884 /// a possibly null [receiver] whose getter and setter are defined by |
| 1767 /// [getterSelector] and [setterSelector], respectively. | 1885 /// [getterSelector] and [setterSelector], respectively. |
| 1768 /// | 1886 /// |
| 1769 /// For instance: | 1887 /// For instance: |
| 1888 /// |
| 1770 /// m(receiver, rhs) => receiver?.foo += rhs; | 1889 /// m(receiver, rhs) => receiver?.foo += rhs; |
| 1771 /// | 1890 /// |
| 1772 R visitIfNotNullDynamicPropertyCompound( | 1891 R visitIfNotNullDynamicPropertyCompound( |
| 1773 Send node, | 1892 Send node, |
| 1774 Node receiver, | 1893 Node receiver, |
| 1775 AssignmentOperator operator, | 1894 AssignmentOperator operator, |
| 1776 Node rhs, | 1895 Node rhs, |
| 1777 Selector getterSelector, | 1896 Selector getterSelector, |
| 1778 Selector setterSelector, | 1897 Selector setterSelector, |
| 1779 A arg); | 1898 A arg); |
| 1780 | 1899 |
| 1781 /// Compound assignment expression of [rhs] with [operator] of the property on | 1900 /// Compound assignment expression of [rhs] with [operator] of the property on |
| 1782 /// `this` whose getter and setter are defined by [getterSelector] and | 1901 /// `this` whose getter and setter are defined by [getterSelector] and |
| 1783 /// [setterSelector], respectively. | 1902 /// [setterSelector], respectively. |
| 1784 /// | 1903 /// |
| 1785 /// For instance: | 1904 /// For instance: |
| 1905 /// |
| 1786 /// class C { | 1906 /// class C { |
| 1787 /// m(rhs) => this.foo += rhs; | 1907 /// m(rhs) => this.foo += rhs; |
| 1788 /// } | 1908 /// } |
| 1909 /// |
| 1789 /// or | 1910 /// or |
| 1911 /// |
| 1790 /// class C { | 1912 /// class C { |
| 1791 /// m(rhs) => foo += rhs; | 1913 /// m(rhs) => foo += rhs; |
| 1792 /// } | 1914 /// } |
| 1793 /// | 1915 /// |
| 1794 R visitThisPropertyCompound( | 1916 R visitThisPropertyCompound( |
| 1795 Send node, | 1917 Send node, |
| 1796 AssignmentOperator operator, | 1918 AssignmentOperator operator, |
| 1797 Node rhs, | 1919 Node rhs, |
| 1798 Selector getterSelector, | 1920 Selector getterSelector, |
| 1799 Selector setterSelector, | 1921 Selector setterSelector, |
| 1800 A arg); | 1922 A arg); |
| 1801 | 1923 |
| 1802 /// Compound assignment expression of [rhs] with [operator] on a [parameter]. | 1924 /// Compound assignment expression of [rhs] with [operator] on a [parameter]. |
| 1803 /// | 1925 /// |
| 1804 /// For instance: | 1926 /// For instance: |
| 1927 /// |
| 1805 /// m(parameter, rhs) => parameter += rhs; | 1928 /// m(parameter, rhs) => parameter += rhs; |
| 1806 /// | 1929 /// |
| 1807 R visitParameterCompound( | 1930 R visitParameterCompound( |
| 1808 Send node, | 1931 Send node, |
| 1809 ParameterElement parameter, | 1932 ParameterElement parameter, |
| 1810 AssignmentOperator operator, | 1933 AssignmentOperator operator, |
| 1811 Node rhs, | 1934 Node rhs, |
| 1812 A arg); | 1935 A arg); |
| 1813 | 1936 |
| 1814 /// Compound assignment expression of [rhs] with [operator] on a final | 1937 /// Compound assignment expression of [rhs] with [operator] on a final |
| 1815 /// [parameter]. | 1938 /// [parameter]. |
| 1816 /// | 1939 /// |
| 1817 /// For instance: | 1940 /// For instance: |
| 1941 /// |
| 1818 /// m(final parameter, rhs) => parameter += rhs; | 1942 /// m(final parameter, rhs) => parameter += rhs; |
| 1819 /// | 1943 /// |
| 1820 R visitFinalParameterCompound( | 1944 R visitFinalParameterCompound( |
| 1821 Send node, | 1945 Send node, |
| 1822 ParameterElement parameter, | 1946 ParameterElement parameter, |
| 1823 AssignmentOperator operator, | 1947 AssignmentOperator operator, |
| 1824 Node rhs, | 1948 Node rhs, |
| 1825 A arg); | 1949 A arg); |
| 1826 | 1950 |
| 1827 /// Compound assignment expression of [rhs] with [operator] on a local | 1951 /// Compound assignment expression of [rhs] with [operator] on a local |
| 1828 /// [variable]. | 1952 /// [variable]. |
| 1829 /// | 1953 /// |
| 1830 /// For instance: | 1954 /// For instance: |
| 1955 /// |
| 1831 /// m(rhs) { | 1956 /// m(rhs) { |
| 1832 /// var variable; | 1957 /// var variable; |
| 1833 /// variable += rhs; | 1958 /// variable += rhs; |
| 1834 /// } | 1959 /// } |
| 1835 /// | 1960 /// |
| 1836 R visitLocalVariableCompound( | 1961 R visitLocalVariableCompound( |
| 1837 Send node, | 1962 Send node, |
| 1838 LocalVariableElement variable, | 1963 LocalVariableElement variable, |
| 1839 AssignmentOperator operator, | 1964 AssignmentOperator operator, |
| 1840 Node rhs, | 1965 Node rhs, |
| 1841 A arg); | 1966 A arg); |
| 1842 | 1967 |
| 1843 /// Compound assignment expression of [rhs] with [operator] on a final local | 1968 /// Compound assignment expression of [rhs] with [operator] on a final local |
| 1844 /// [variable]. | 1969 /// [variable]. |
| 1845 /// | 1970 /// |
| 1846 /// For instance: | 1971 /// For instance: |
| 1972 /// |
| 1847 /// m(rhs) { | 1973 /// m(rhs) { |
| 1848 /// final variable = 0; | 1974 /// final variable = 0; |
| 1849 /// variable += rhs; | 1975 /// variable += rhs; |
| 1850 /// } | 1976 /// } |
| 1851 /// | 1977 /// |
| 1852 R visitFinalLocalVariableCompound( | 1978 R visitFinalLocalVariableCompound( |
| 1853 Send node, | 1979 Send node, |
| 1854 LocalVariableElement variable, | 1980 LocalVariableElement variable, |
| 1855 AssignmentOperator operator, | 1981 AssignmentOperator operator, |
| 1856 Node rhs, | 1982 Node rhs, |
| 1857 A arg); | 1983 A arg); |
| 1858 | 1984 |
| 1859 /// Compound assignment expression of [rhs] with [operator] on a local | 1985 /// Compound assignment expression of [rhs] with [operator] on a local |
| 1860 /// [function]. | 1986 /// [function]. |
| 1861 /// | 1987 /// |
| 1862 /// For instance: | 1988 /// For instance: |
| 1989 /// |
| 1863 /// m(rhs) { | 1990 /// m(rhs) { |
| 1864 /// function() {} | 1991 /// function() {} |
| 1865 /// function += rhs; | 1992 /// function += rhs; |
| 1866 /// } | 1993 /// } |
| 1867 /// | 1994 /// |
| 1868 R visitLocalFunctionCompound( | 1995 R visitLocalFunctionCompound( |
| 1869 Send node, | 1996 Send node, |
| 1870 LocalFunctionElement function, | 1997 LocalFunctionElement function, |
| 1871 AssignmentOperator operator, | 1998 AssignmentOperator operator, |
| 1872 Node rhs, | 1999 Node rhs, |
| 1873 A arg); | 2000 A arg); |
| 1874 | 2001 |
| 1875 /// Compound assignment expression of [rhs] with [operator] on a static | 2002 /// Compound assignment expression of [rhs] with [operator] on a static |
| 1876 /// [field]. | 2003 /// [field]. |
| 1877 /// | 2004 /// |
| 1878 /// For instance: | 2005 /// For instance: |
| 2006 /// |
| 1879 /// class C { | 2007 /// class C { |
| 1880 /// static var field; | 2008 /// static var field; |
| 1881 /// m(rhs) => field += rhs; | 2009 /// m(rhs) => field += rhs; |
| 1882 /// } | 2010 /// } |
| 1883 /// | 2011 /// |
| 1884 R visitStaticFieldCompound( | 2012 R visitStaticFieldCompound( |
| 1885 Send node, | 2013 Send node, |
| 1886 FieldElement field, | 2014 FieldElement field, |
| 1887 AssignmentOperator operator, | 2015 AssignmentOperator operator, |
| 1888 Node rhs, | 2016 Node rhs, |
| 1889 A arg); | 2017 A arg); |
| 1890 | 2018 |
| 1891 /// Compound assignment expression of [rhs] with [operator] on a final static | 2019 /// Compound assignment expression of [rhs] with [operator] on a final static |
| 1892 /// [field]. | 2020 /// [field]. |
| 1893 /// | 2021 /// |
| 1894 /// For instance: | 2022 /// For instance: |
| 2023 /// |
| 1895 /// class C { | 2024 /// class C { |
| 1896 /// static final field = 0; | 2025 /// static final field = 0; |
| 1897 /// m(rhs) => field += rhs; | 2026 /// m(rhs) => field += rhs; |
| 1898 /// } | 2027 /// } |
| 1899 /// | 2028 /// |
| 1900 R visitFinalStaticFieldCompound( | 2029 R visitFinalStaticFieldCompound( |
| 1901 Send node, | 2030 Send node, |
| 1902 FieldElement field, | 2031 FieldElement field, |
| 1903 AssignmentOperator operator, | 2032 AssignmentOperator operator, |
| 1904 Node rhs, | 2033 Node rhs, |
| 1905 A arg); | 2034 A arg); |
| 1906 | 2035 |
| 1907 /// Compound assignment expression of [rhs] with [operator] reading from a | 2036 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 1908 /// static [getter] and writing to a static [setter]. | 2037 /// static [getter] and writing to a static [setter]. |
| 1909 /// | 2038 /// |
| 1910 /// For instance: | 2039 /// For instance: |
| 2040 /// |
| 1911 /// class C { | 2041 /// class C { |
| 1912 /// static get o => 0; | 2042 /// static get o => 0; |
| 1913 /// static set o(_) {} | 2043 /// static set o(_) {} |
| 1914 /// m(rhs) => o += rhs; | 2044 /// m(rhs) => o += rhs; |
| 1915 /// } | 2045 /// } |
| 1916 /// | 2046 /// |
| 1917 R visitStaticGetterSetterCompound( | 2047 R visitStaticGetterSetterCompound( |
| 1918 Send node, | 2048 Send node, |
| 1919 FunctionElement getter, | 2049 FunctionElement getter, |
| 1920 FunctionElement setter, | 2050 FunctionElement setter, |
| 1921 AssignmentOperator operator, | 2051 AssignmentOperator operator, |
| 1922 Node rhs, | 2052 Node rhs, |
| 1923 A arg); | 2053 A arg); |
| 1924 | 2054 |
| 1925 /// Compound assignment expression of [rhs] with [operator] reading from a | 2055 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 1926 /// static [method], that is, closurizing [method], and writing to a static | 2056 /// static [method], that is, closurizing [method], and writing to a static |
| 1927 /// [setter]. | 2057 /// [setter]. |
| 1928 /// | 2058 /// |
| 1929 /// For instance: | 2059 /// For instance: |
| 2060 /// |
| 1930 /// class C { | 2061 /// class C { |
| 1931 /// static o() {} | 2062 /// static o() {} |
| 1932 /// static set o(_) {} | 2063 /// static set o(_) {} |
| 1933 /// m(rhs) => o += rhs; | 2064 /// m(rhs) => o += rhs; |
| 1934 /// } | 2065 /// } |
| 1935 /// | 2066 /// |
| 1936 R visitStaticMethodSetterCompound( | 2067 R visitStaticMethodSetterCompound( |
| 1937 Send node, | 2068 Send node, |
| 1938 MethodElement method, | 2069 MethodElement method, |
| 1939 MethodElement setter, | 2070 MethodElement setter, |
| 1940 AssignmentOperator operator, | 2071 AssignmentOperator operator, |
| 1941 Node rhs, | 2072 Node rhs, |
| 1942 A arg); | 2073 A arg); |
| 1943 | 2074 |
| 1944 /// Compound assignment expression of [rhs] with [operator] on a top level | 2075 /// Compound assignment expression of [rhs] with [operator] on a top level |
| 1945 /// [field]. | 2076 /// [field]. |
| 1946 /// | 2077 /// |
| 1947 /// For instance: | 2078 /// For instance: |
| 2079 /// |
| 1948 /// var field; | 2080 /// var field; |
| 1949 /// m(rhs) => field += rhs; | 2081 /// m(rhs) => field += rhs; |
| 1950 /// | 2082 /// |
| 1951 R visitTopLevelFieldCompound( | 2083 R visitTopLevelFieldCompound( |
| 1952 Send node, | 2084 Send node, |
| 1953 FieldElement field, | 2085 FieldElement field, |
| 1954 AssignmentOperator operator, | 2086 AssignmentOperator operator, |
| 1955 Node rhs, | 2087 Node rhs, |
| 1956 A arg); | 2088 A arg); |
| 1957 | 2089 |
| 1958 /// Compound assignment expression of [rhs] with [operator] on a final top | 2090 /// Compound assignment expression of [rhs] with [operator] on a final top |
| 1959 /// level [field]. | 2091 /// level [field]. |
| 1960 /// | 2092 /// |
| 1961 /// For instance: | 2093 /// For instance: |
| 2094 /// |
| 1962 /// final field = 0; | 2095 /// final field = 0; |
| 1963 /// m(rhs) => field += rhs; | 2096 /// m(rhs) => field += rhs; |
| 1964 /// | 2097 /// |
| 1965 R visitFinalTopLevelFieldCompound( | 2098 R visitFinalTopLevelFieldCompound( |
| 1966 Send node, | 2099 Send node, |
| 1967 FieldElement field, | 2100 FieldElement field, |
| 1968 AssignmentOperator operator, | 2101 AssignmentOperator operator, |
| 1969 Node rhs, | 2102 Node rhs, |
| 1970 A arg); | 2103 A arg); |
| 1971 | 2104 |
| 1972 /// Compound assignment expression of [rhs] with [operator] reading from a | 2105 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 1973 /// top level [getter] and writing to a top level [setter]. | 2106 /// top level [getter] and writing to a top level [setter]. |
| 1974 /// | 2107 /// |
| 1975 /// For instance: | 2108 /// For instance: |
| 2109 /// |
| 1976 /// get o => 0; | 2110 /// get o => 0; |
| 1977 /// set o(_) {} | 2111 /// set o(_) {} |
| 1978 /// m(rhs) => o += rhs; | 2112 /// m(rhs) => o += rhs; |
| 1979 /// | 2113 /// |
| 1980 R visitTopLevelGetterSetterCompound( | 2114 R visitTopLevelGetterSetterCompound( |
| 1981 Send node, | 2115 Send node, |
| 1982 FunctionElement getter, | 2116 FunctionElement getter, |
| 1983 FunctionElement setter, | 2117 FunctionElement setter, |
| 1984 AssignmentOperator operator, | 2118 AssignmentOperator operator, |
| 1985 Node rhs, | 2119 Node rhs, |
| 1986 A arg); | 2120 A arg); |
| 1987 | 2121 |
| 1988 /// Compound assignment expression of [rhs] with [operator] reading from a | 2122 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 1989 /// top level [method], that is, closurizing [method], and writing to a top | 2123 /// top level [method], that is, closurizing [method], and writing to a top |
| 1990 /// level [setter]. | 2124 /// level [setter]. |
| 1991 /// | 2125 /// |
| 1992 /// For instance: | 2126 /// For instance: |
| 2127 /// |
| 1993 /// o() {} | 2128 /// o() {} |
| 1994 /// set o(_) {} | 2129 /// set o(_) {} |
| 1995 /// m(rhs) => o += rhs; | 2130 /// m(rhs) => o += rhs; |
| 1996 /// | 2131 /// |
| 1997 R visitTopLevelMethodSetterCompound( | 2132 R visitTopLevelMethodSetterCompound( |
| 1998 Send node, | 2133 Send node, |
| 1999 FunctionElement method, | 2134 FunctionElement method, |
| 2000 FunctionElement setter, | 2135 FunctionElement setter, |
| 2001 AssignmentOperator operator, | 2136 AssignmentOperator operator, |
| 2002 Node rhs, | 2137 Node rhs, |
| 2003 A arg); | 2138 A arg); |
| 2004 | 2139 |
| 2005 /// Compound assignment expression of [rhs] with [operator] reading from a | 2140 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2006 /// top level [method], that is, closurizing [method], and writing to an | 2141 /// top level [method], that is, closurizing [method], and writing to an |
| 2007 /// unresolved setter. | 2142 /// unresolved setter. |
| 2008 /// | 2143 /// |
| 2009 /// For instance: | 2144 /// For instance: |
| 2145 /// |
| 2010 /// o() {} | 2146 /// o() {} |
| 2011 /// m(rhs) => o += rhs; | 2147 /// m(rhs) => o += rhs; |
| 2012 /// | 2148 /// |
| 2013 R visitTopLevelMethodCompound( | 2149 R visitTopLevelMethodCompound( |
| 2014 Send node, | 2150 Send node, |
| 2015 FunctionElement method, | 2151 FunctionElement method, |
| 2016 AssignmentOperator operator, | 2152 AssignmentOperator operator, |
| 2017 Node rhs, | 2153 Node rhs, |
| 2018 A arg); | 2154 A arg); |
| 2019 | 2155 |
| 2020 /// Compound assignment expression of [rhs] with [operator] on a super | 2156 /// Compound assignment expression of [rhs] with [operator] on a super |
| 2021 /// [field]. | 2157 /// [field]. |
| 2022 /// | 2158 /// |
| 2023 /// For instance: | 2159 /// For instance: |
| 2160 /// |
| 2024 /// class B { | 2161 /// class B { |
| 2025 /// var field; | 2162 /// var field; |
| 2026 /// } | 2163 /// } |
| 2027 /// class C extends B { | 2164 /// class C extends B { |
| 2028 /// m(rhs) => super.field += rhs; | 2165 /// m(rhs) => super.field += rhs; |
| 2029 /// } | 2166 /// } |
| 2030 /// | 2167 /// |
| 2031 R visitSuperFieldCompound( | 2168 R visitSuperFieldCompound( |
| 2032 Send node, | 2169 Send node, |
| 2033 FieldElement field, | 2170 FieldElement field, |
| 2034 AssignmentOperator operator, | 2171 AssignmentOperator operator, |
| 2035 Node rhs, | 2172 Node rhs, |
| 2036 A arg); | 2173 A arg); |
| 2037 | 2174 |
| 2038 /// Compound assignment expression of [rhs] with [operator] on a final super | 2175 /// Compound assignment expression of [rhs] with [operator] on a final super |
| 2039 /// [field]. | 2176 /// [field]. |
| 2040 /// | 2177 /// |
| 2041 /// For instance: | 2178 /// For instance: |
| 2179 /// |
| 2042 /// class B { | 2180 /// class B { |
| 2043 /// final field = 42; | 2181 /// final field = 42; |
| 2044 /// } | 2182 /// } |
| 2045 /// class C extends B { | 2183 /// class C extends B { |
| 2046 /// m(rhs) => super.field += rhs; | 2184 /// m(rhs) => super.field += rhs; |
| 2047 /// } | 2185 /// } |
| 2048 /// | 2186 /// |
| 2049 R visitFinalSuperFieldCompound( | 2187 R visitFinalSuperFieldCompound( |
| 2050 Send node, | 2188 Send node, |
| 2051 FieldElement field, | 2189 FieldElement field, |
| 2052 AssignmentOperator operator, | 2190 AssignmentOperator operator, |
| 2053 Node rhs, | 2191 Node rhs, |
| 2054 A arg); | 2192 A arg); |
| 2055 | 2193 |
| 2056 /// Prefix expression with [operator] on a final super [field]. | 2194 /// Prefix expression with [operator] on a final super [field]. |
| 2057 /// | 2195 /// |
| 2058 /// For instance: | 2196 /// For instance: |
| 2197 /// |
| 2059 /// class B { | 2198 /// class B { |
| 2060 /// final field = 42; | 2199 /// final field = 42; |
| 2061 /// } | 2200 /// } |
| 2062 /// class C extends B { | 2201 /// class C extends B { |
| 2063 /// m(rhs) => ++super.field; | 2202 /// m(rhs) => ++super.field; |
| 2064 /// } | 2203 /// } |
| 2065 /// | 2204 /// |
| 2066 R visitFinalSuperFieldPrefix( | 2205 R visitFinalSuperFieldPrefix( |
| 2067 Send node, | 2206 Send node, |
| 2068 FieldElement field, | 2207 FieldElement field, |
| 2069 IncDecOperator operator, | 2208 IncDecOperator operator, |
| 2070 A arg); | 2209 A arg); |
| 2071 | 2210 |
| 2072 /// Prefix expression with [operator] on an unresolved super property. | 2211 /// Prefix expression with [operator] on an unresolved super property. |
| 2073 /// | 2212 /// |
| 2074 /// For instance: | 2213 /// For instance: |
| 2214 /// |
| 2075 /// class B { | 2215 /// class B { |
| 2076 /// } | 2216 /// } |
| 2077 /// class C extends B { | 2217 /// class C extends B { |
| 2078 /// m(rhs) => ++super.unresolved; | 2218 /// m(rhs) => ++super.unresolved; |
| 2079 /// } | 2219 /// } |
| 2080 /// | 2220 /// |
| 2081 R visitUnresolvedSuperPrefix( | 2221 R visitUnresolvedSuperPrefix( |
| 2082 Send node, | 2222 Send node, |
| 2083 Element element, | 2223 Element element, |
| 2084 IncDecOperator operator, | 2224 IncDecOperator operator, |
| 2085 A arg); | 2225 A arg); |
| 2086 | 2226 |
| 2087 /// Postfix expression with [operator] on an unresolved super property. | 2227 /// Postfix expression with [operator] on an unresolved super property. |
| 2088 /// | 2228 /// |
| 2089 /// For instance: | 2229 /// For instance: |
| 2230 /// |
| 2090 /// class B { | 2231 /// class B { |
| 2091 /// } | 2232 /// } |
| 2092 /// class C extends B { | 2233 /// class C extends B { |
| 2093 /// m(rhs) => super.unresolved++; | 2234 /// m(rhs) => super.unresolved++; |
| 2094 /// } | 2235 /// } |
| 2095 /// | 2236 /// |
| 2096 R visitUnresolvedSuperPostfix( | 2237 R visitUnresolvedSuperPostfix( |
| 2097 Send node, | 2238 Send node, |
| 2098 Element element, | 2239 Element element, |
| 2099 IncDecOperator operator, | 2240 IncDecOperator operator, |
| 2100 A arg); | 2241 A arg); |
| 2101 | 2242 |
| 2102 /// Compound assignment expression of [rhs] with [operator] on an unresolved | 2243 /// Compound assignment expression of [rhs] with [operator] on an unresolved |
| 2103 /// super property. | 2244 /// super property. |
| 2104 /// | 2245 /// |
| 2105 /// For instance: | 2246 /// For instance: |
| 2247 /// |
| 2106 /// class B { | 2248 /// class B { |
| 2107 /// } | 2249 /// } |
| 2108 /// class C extends B { | 2250 /// class C extends B { |
| 2109 /// m(rhs) => super.unresolved += rhs; | 2251 /// m(rhs) => super.unresolved += rhs; |
| 2110 /// } | 2252 /// } |
| 2111 /// | 2253 /// |
| 2112 R visitUnresolvedSuperCompound( | 2254 R visitUnresolvedSuperCompound( |
| 2113 Send node, | 2255 Send node, |
| 2114 Element element, | 2256 Element element, |
| 2115 AssignmentOperator operator, | 2257 AssignmentOperator operator, |
| 2116 Node rhs, | 2258 Node rhs, |
| 2117 A arg); | 2259 A arg); |
| 2118 | 2260 |
| 2119 /// Postfix expression with [operator] on a final super [field]. | 2261 /// Postfix expression with [operator] on a final super [field]. |
| 2120 /// | 2262 /// |
| 2121 /// For instance: | 2263 /// For instance: |
| 2264 /// |
| 2122 /// class B { | 2265 /// class B { |
| 2123 /// final field = 42; | 2266 /// final field = 42; |
| 2124 /// } | 2267 /// } |
| 2125 /// class C extends B { | 2268 /// class C extends B { |
| 2126 /// m(rhs) => super.field++; | 2269 /// m(rhs) => super.field++; |
| 2127 /// } | 2270 /// } |
| 2128 /// | 2271 /// |
| 2129 R visitFinalSuperFieldPostfix( | 2272 R visitFinalSuperFieldPostfix( |
| 2130 Send node, | 2273 Send node, |
| 2131 FieldElement field, | 2274 FieldElement field, |
| 2132 IncDecOperator operator, | 2275 IncDecOperator operator, |
| 2133 A arg); | 2276 A arg); |
| 2134 | 2277 |
| 2135 /// Compound assignment expression of [rhs] with [operator] reading from the | 2278 /// Compound assignment expression of [rhs] with [operator] reading from the |
| 2136 /// super field [readField] and writing to the different super field | 2279 /// super field [readField] and writing to the different super field |
| 2137 /// [writtenField]. | 2280 /// [writtenField]. |
| 2138 /// | 2281 /// |
| 2139 /// For instance: | 2282 /// For instance: |
| 2283 /// |
| 2140 /// class A { | 2284 /// class A { |
| 2141 /// var field; | 2285 /// var field; |
| 2142 /// } | 2286 /// } |
| 2143 /// class B extends A { | 2287 /// class B extends A { |
| 2144 /// final field; | 2288 /// final field; |
| 2145 /// } | 2289 /// } |
| 2146 /// class C extends B { | 2290 /// class C extends B { |
| 2147 /// m() => super.field += rhs; | 2291 /// m() => super.field += rhs; |
| 2148 /// } | 2292 /// } |
| 2149 /// | 2293 /// |
| 2150 R visitSuperFieldFieldCompound( | 2294 R visitSuperFieldFieldCompound( |
| 2151 Send node, | 2295 Send node, |
| 2152 FieldElement readField, | 2296 FieldElement readField, |
| 2153 FieldElement writtenField, | 2297 FieldElement writtenField, |
| 2154 AssignmentOperator operator, | 2298 AssignmentOperator operator, |
| 2155 Node rhs, | 2299 Node rhs, |
| 2156 A arg); | 2300 A arg); |
| 2157 | 2301 |
| 2158 /// Compound assignment expression of [rhs] with [operator] reading from a | 2302 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2159 /// super [getter] and writing to a super [setter]. | 2303 /// super [getter] and writing to a super [setter]. |
| 2160 /// | 2304 /// |
| 2161 /// For instance: | 2305 /// For instance: |
| 2306 /// |
| 2162 /// class B { | 2307 /// class B { |
| 2163 /// get o => 0; | 2308 /// get o => 0; |
| 2164 /// set o(_) {} | 2309 /// set o(_) {} |
| 2165 /// } | 2310 /// } |
| 2166 /// class C extends B { | 2311 /// class C extends B { |
| 2167 /// m(rhs) => super.o += rhs; | 2312 /// m(rhs) => super.o += rhs; |
| 2168 /// } | 2313 /// } |
| 2169 /// | 2314 /// |
| 2170 R visitSuperGetterSetterCompound( | 2315 R visitSuperGetterSetterCompound( |
| 2171 Send node, | 2316 Send node, |
| 2172 FunctionElement getter, | 2317 FunctionElement getter, |
| 2173 FunctionElement setter, | 2318 FunctionElement setter, |
| 2174 AssignmentOperator operator, | 2319 AssignmentOperator operator, |
| 2175 Node rhs, | 2320 Node rhs, |
| 2176 A arg); | 2321 A arg); |
| 2177 | 2322 |
| 2178 /// Compound assignment expression of [rhs] with [operator] reading from a | 2323 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2179 /// super [method], that is, closurizing [method], and writing to a super | 2324 /// super [method], that is, closurizing [method], and writing to a super |
| 2180 /// [setter]. | 2325 /// [setter]. |
| 2181 /// | 2326 /// |
| 2182 /// For instance: | 2327 /// For instance: |
| 2328 /// |
| 2183 /// class B { | 2329 /// class B { |
| 2184 /// o() {} | 2330 /// o() {} |
| 2185 /// set o(_) {} | 2331 /// set o(_) {} |
| 2186 /// } | 2332 /// } |
| 2187 /// class C extends B { | 2333 /// class C extends B { |
| 2188 /// m(rhs) => super.o += rhs; | 2334 /// m(rhs) => super.o += rhs; |
| 2189 /// } | 2335 /// } |
| 2190 /// | 2336 /// |
| 2191 R visitSuperMethodSetterCompound( | 2337 R visitSuperMethodSetterCompound( |
| 2192 Send node, | 2338 Send node, |
| 2193 FunctionElement method, | 2339 FunctionElement method, |
| 2194 FunctionElement setter, | 2340 FunctionElement setter, |
| 2195 AssignmentOperator operator, | 2341 AssignmentOperator operator, |
| 2196 Node rhs, | 2342 Node rhs, |
| 2197 A arg); | 2343 A arg); |
| 2198 | 2344 |
| 2199 /// Compound assignment expression of [rhs] with [operator] reading the | 2345 /// Compound assignment expression of [rhs] with [operator] reading the |
| 2200 /// closurized super [method] and trying to invoke the non-existing setter. | 2346 /// closurized super [method] and trying to invoke the non-existing setter. |
| 2201 /// | 2347 /// |
| 2202 /// For instance: | 2348 /// For instance: |
| 2349 /// |
| 2203 /// class B { | 2350 /// class B { |
| 2204 /// o() {} | 2351 /// o() {} |
| 2205 /// } | 2352 /// } |
| 2206 /// class C extends B { | 2353 /// class C extends B { |
| 2207 /// m(rhs) => super.o += rhs; | 2354 /// m(rhs) => super.o += rhs; |
| 2208 /// } | 2355 /// } |
| 2209 /// | 2356 /// |
| 2210 R visitSuperMethodCompound( | 2357 R visitSuperMethodCompound( |
| 2211 Send node, | 2358 Send node, |
| 2212 FunctionElement method, | 2359 FunctionElement method, |
| 2213 AssignmentOperator operator, | 2360 AssignmentOperator operator, |
| 2214 Node rhs, | 2361 Node rhs, |
| 2215 A arg); | 2362 A arg); |
| 2216 | 2363 |
| 2217 /// Compound assignment expression of [rhs] with [operator] reading from the | 2364 /// Compound assignment expression of [rhs] with [operator] reading from the |
| 2218 /// non-existing super getter and writing to a super [setter]. | 2365 /// non-existing super getter and writing to a super [setter]. |
| 2219 /// | 2366 /// |
| 2220 /// For instance | 2367 /// For instance: |
| 2368 /// |
| 2221 /// class B { | 2369 /// class B { |
| 2222 /// set o(_) {} | 2370 /// set o(_) {} |
| 2223 /// } | 2371 /// } |
| 2224 /// class C extends B { | 2372 /// class C extends B { |
| 2225 /// m(rhs) => super.o += rhs; | 2373 /// m(rhs) => super.o += rhs; |
| 2226 /// } | 2374 /// } |
| 2227 /// | 2375 /// |
| 2228 R visitUnresolvedSuperGetterCompound( | 2376 R visitUnresolvedSuperGetterCompound( |
| 2229 Send node, | 2377 Send node, |
| 2230 Element element, | 2378 Element element, |
| 2231 MethodElement setter, | 2379 MethodElement setter, |
| 2232 AssignmentOperator operator, | 2380 AssignmentOperator operator, |
| 2233 Node rhs, | 2381 Node rhs, |
| 2234 A arg); | 2382 A arg); |
| 2235 | 2383 |
| 2236 /// Compound assignment expression of [rhs] with [operator] reading from a | 2384 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2237 /// super [getter] and writing to the non-existing super setter. | 2385 /// super [getter] and writing to the non-existing super setter. |
| 2238 /// | 2386 /// |
| 2239 /// For instance | 2387 /// For instance: |
| 2388 /// |
| 2240 /// class B { | 2389 /// class B { |
| 2241 /// get o => 42; | 2390 /// get o => 42; |
| 2242 /// } | 2391 /// } |
| 2243 /// class C extends B { | 2392 /// class C extends B { |
| 2244 /// m(rhs) => super.o += rhs; | 2393 /// m(rhs) => super.o += rhs; |
| 2245 /// } | 2394 /// } |
| 2246 /// | 2395 /// |
| 2247 R visitUnresolvedSuperSetterCompound( | 2396 R visitUnresolvedSuperSetterCompound( |
| 2248 Send node, | 2397 Send node, |
| 2249 MethodElement getter, | 2398 MethodElement getter, |
| 2250 Element element, | 2399 Element element, |
| 2251 AssignmentOperator operator, | 2400 AssignmentOperator operator, |
| 2252 Node rhs, | 2401 Node rhs, |
| 2253 A arg); | 2402 A arg); |
| 2254 | 2403 |
| 2255 /// Compound assignment expression of [rhs] with [operator] reading from a | 2404 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2256 /// super [field] and writing to a super [setter]. | 2405 /// super [field] and writing to a super [setter]. |
| 2257 /// | 2406 /// |
| 2258 /// For instance: | 2407 /// For instance: |
| 2408 /// |
| 2259 /// class A { | 2409 /// class A { |
| 2260 /// var o; | 2410 /// var o; |
| 2261 /// } | 2411 /// } |
| 2262 /// class B extends A { | 2412 /// class B extends A { |
| 2263 /// set o(_) {} | 2413 /// set o(_) {} |
| 2264 /// } | 2414 /// } |
| 2265 /// class C extends B { | 2415 /// class C extends B { |
| 2266 /// m(rhs) => super.o += rhs; | 2416 /// m(rhs) => super.o += rhs; |
| 2267 /// } | 2417 /// } |
| 2268 /// | 2418 /// |
| 2269 R visitSuperFieldSetterCompound( | 2419 R visitSuperFieldSetterCompound( |
| 2270 Send node, | 2420 Send node, |
| 2271 FieldElement field, | 2421 FieldElement field, |
| 2272 FunctionElement setter, | 2422 FunctionElement setter, |
| 2273 AssignmentOperator operator, | 2423 AssignmentOperator operator, |
| 2274 Node rhs, | 2424 Node rhs, |
| 2275 A arg); | 2425 A arg); |
| 2276 | 2426 |
| 2277 /// Compound assignment expression of [rhs] with [operator] reading from a | 2427 /// Compound assignment expression of [rhs] with [operator] reading from a |
| 2278 /// super [getter] and writing to a super [field]. | 2428 /// super [getter] and writing to a super [field]. |
| 2279 /// | 2429 /// |
| 2280 /// For instance: | 2430 /// For instance: |
| 2431 /// |
| 2281 /// class A { | 2432 /// class A { |
| 2282 /// var o; | 2433 /// var o; |
| 2283 /// } | 2434 /// } |
| 2284 /// class B extends A { | 2435 /// class B extends A { |
| 2285 /// get o => 0; | 2436 /// get o => 0; |
| 2286 /// } | 2437 /// } |
| 2287 /// class C extends B { | 2438 /// class C extends B { |
| 2288 /// m(rhs) => super.o += rhs; | 2439 /// m(rhs) => super.o += rhs; |
| 2289 /// } | 2440 /// } |
| 2290 /// | 2441 /// |
| 2291 R visitSuperGetterFieldCompound( | 2442 R visitSuperGetterFieldCompound( |
| 2292 Send node, | 2443 Send node, |
| 2293 FunctionElement getter, | 2444 FunctionElement getter, |
| 2294 FieldElement field, | 2445 FieldElement field, |
| 2295 AssignmentOperator operator, | 2446 AssignmentOperator operator, |
| 2296 Node rhs, | 2447 Node rhs, |
| 2297 A arg); | 2448 A arg); |
| 2298 | 2449 |
| 2299 /// Compound assignment expression of [rhs] with [operator] on a type literal | 2450 /// Compound assignment expression of [rhs] with [operator] on a type literal |
| 2300 /// for class [element]. | 2451 /// for class [element]. |
| 2301 /// | 2452 /// |
| 2302 /// For instance: | 2453 /// For instance: |
| 2454 /// |
| 2303 /// class C {} | 2455 /// class C {} |
| 2304 /// m(rhs) => C += rhs; | 2456 /// m(rhs) => C += rhs; |
| 2305 /// | 2457 /// |
| 2306 R visitClassTypeLiteralCompound( | 2458 R visitClassTypeLiteralCompound( |
| 2307 Send node, | 2459 Send node, |
| 2308 ConstantExpression constant, | 2460 ConstantExpression constant, |
| 2309 AssignmentOperator operator, | 2461 AssignmentOperator operator, |
| 2310 Node rhs, | 2462 Node rhs, |
| 2311 A arg); | 2463 A arg); |
| 2312 | 2464 |
| 2313 /// Compound assignment expression of [rhs] with [operator] on a type literal | 2465 /// Compound assignment expression of [rhs] with [operator] on a type literal |
| 2314 /// for typedef [element]. | 2466 /// for typedef [element]. |
| 2315 /// | 2467 /// |
| 2316 /// For instance: | 2468 /// For instance: |
| 2469 /// |
| 2317 /// typedef F(); | 2470 /// typedef F(); |
| 2318 /// m(rhs) => F += rhs; | 2471 /// m(rhs) => F += rhs; |
| 2319 /// | 2472 /// |
| 2320 R visitTypedefTypeLiteralCompound( | 2473 R visitTypedefTypeLiteralCompound( |
| 2321 Send node, | 2474 Send node, |
| 2322 ConstantExpression constant, | 2475 ConstantExpression constant, |
| 2323 AssignmentOperator operator, | 2476 AssignmentOperator operator, |
| 2324 Node rhs, | 2477 Node rhs, |
| 2325 A arg); | 2478 A arg); |
| 2326 | 2479 |
| 2327 /// Compound assignment expression of [rhs] with [operator] on a type literal | 2480 /// Compound assignment expression of [rhs] with [operator] on a type literal |
| 2328 /// for type variable [element]. | 2481 /// for type variable [element]. |
| 2329 /// | 2482 /// |
| 2330 /// For instance: | 2483 /// For instance: |
| 2484 /// |
| 2331 /// class C<T> { | 2485 /// class C<T> { |
| 2332 /// m(rhs) => T += rhs; | 2486 /// m(rhs) => T += rhs; |
| 2333 /// } | 2487 /// } |
| 2334 /// | 2488 /// |
| 2335 R visitTypeVariableTypeLiteralCompound( | 2489 R visitTypeVariableTypeLiteralCompound( |
| 2336 Send node, | 2490 Send node, |
| 2337 TypeVariableElement element, | 2491 TypeVariableElement element, |
| 2338 AssignmentOperator operator, | 2492 AssignmentOperator operator, |
| 2339 Node rhs, | 2493 Node rhs, |
| 2340 A arg); | 2494 A arg); |
| 2341 | 2495 |
| 2342 /// Compound assignment expression of [rhs] with [operator] on the type | 2496 /// Compound assignment expression of [rhs] with [operator] on the type |
| 2343 /// literal for `dynamic`. | 2497 /// literal for `dynamic`. |
| 2344 /// | 2498 /// |
| 2345 /// For instance: | 2499 /// For instance: |
| 2500 /// |
| 2346 /// m(rhs) => dynamic += rhs; | 2501 /// m(rhs) => dynamic += rhs; |
| 2347 /// | 2502 /// |
| 2348 R visitDynamicTypeLiteralCompound( | 2503 R visitDynamicTypeLiteralCompound( |
| 2349 Send node, | 2504 Send node, |
| 2350 ConstantExpression constant, | 2505 ConstantExpression constant, |
| 2351 AssignmentOperator operator, | 2506 AssignmentOperator operator, |
| 2352 Node rhs, | 2507 Node rhs, |
| 2353 A arg); | 2508 A arg); |
| 2354 | 2509 |
| 2355 /// Compound index assignment of [rhs] with [operator] to [index] on the | 2510 /// Compound index assignment of [rhs] with [operator] to [index] on the |
| 2356 /// index operators of [receiver] whose getter and setter are defined by | 2511 /// index operators of [receiver] whose getter and setter are defined by |
| 2357 /// [getterSelector] and [setterSelector], respectively. | 2512 /// [getterSelector] and [setterSelector], respectively. |
| 2358 /// | 2513 /// |
| 2359 /// For instance: | 2514 /// For instance: |
| 2515 /// |
| 2360 /// m(receiver, index, rhs) => receiver[index] += rhs; | 2516 /// m(receiver, index, rhs) => receiver[index] += rhs; |
| 2361 /// | 2517 /// |
| 2362 R visitCompoundIndexSet( | 2518 R visitCompoundIndexSet( |
| 2363 SendSet node, | 2519 SendSet node, |
| 2364 Node receiver, | 2520 Node receiver, |
| 2365 Node index, | 2521 Node index, |
| 2366 AssignmentOperator operator, | 2522 AssignmentOperator operator, |
| 2367 Node rhs, | 2523 Node rhs, |
| 2368 A arg); | 2524 A arg); |
| 2369 | 2525 |
| 2370 /// Compound index assignment of [rhs] with [operator] to [index] on the index | 2526 /// Compound index assignment of [rhs] with [operator] to [index] on the index |
| 2371 /// operators of a super class defined by [getter] and [setter]. | 2527 /// operators of a super class defined by [getter] and [setter]. |
| 2372 /// | 2528 /// |
| 2373 /// For instance: | 2529 /// For instance: |
| 2530 /// |
| 2374 /// class B { | 2531 /// class B { |
| 2375 /// operator [](index) {} | 2532 /// operator [](index) {} |
| 2376 /// operator [](index, value) {} | 2533 /// operator [](index, value) {} |
| 2377 /// } | 2534 /// } |
| 2378 /// class C extends B { | 2535 /// class C extends B { |
| 2379 /// m(index, rhs) => super[index] += rhs; | 2536 /// m(index, rhs) => super[index] += rhs; |
| 2380 /// } | 2537 /// } |
| 2381 /// | 2538 /// |
| 2382 R visitSuperCompoundIndexSet( | 2539 R visitSuperCompoundIndexSet( |
| 2383 SendSet node, | 2540 SendSet node, |
| 2384 MethodElement getter, | 2541 MethodElement getter, |
| 2385 MethodElement setter, | 2542 MethodElement setter, |
| 2386 Node index, | 2543 Node index, |
| 2387 AssignmentOperator operator, | 2544 AssignmentOperator operator, |
| 2388 Node rhs, | 2545 Node rhs, |
| 2389 A arg); | 2546 A arg); |
| 2390 | 2547 |
| 2391 /// Compound index assignment of [rhs] with [operator] to [index] on a super | 2548 /// Compound index assignment of [rhs] with [operator] to [index] on a super |
| 2392 /// super class where the index getter is undefined and the index setter is | 2549 /// super class where the index getter is undefined and the index setter is |
| 2393 /// defined by [setter]. | 2550 /// defined by [setter]. |
| 2394 /// | 2551 /// |
| 2395 /// For instance | 2552 /// For instance: |
| 2553 /// |
| 2396 /// class B { | 2554 /// class B { |
| 2397 /// } | 2555 /// } |
| 2398 /// class C extends B { | 2556 /// class C extends B { |
| 2399 /// m() => super[1] += 42; | 2557 /// m() => super[1] += 42; |
| 2400 /// } | 2558 /// } |
| 2401 /// | 2559 /// |
| 2402 R visitUnresolvedSuperGetterCompoundIndexSet( | 2560 R visitUnresolvedSuperGetterCompoundIndexSet( |
| 2403 Send node, | 2561 Send node, |
| 2404 Element element, | 2562 Element element, |
| 2405 MethodElement setter, | 2563 MethodElement setter, |
| 2406 Node index, | 2564 Node index, |
| 2407 AssignmentOperator operator, | 2565 AssignmentOperator operator, |
| 2408 Node rhs, | 2566 Node rhs, |
| 2409 A arg); | 2567 A arg); |
| 2410 | 2568 |
| 2411 /// Compound index assignment of [rhs] with [operator] to [index] on a super | 2569 /// Compound index assignment of [rhs] with [operator] to [index] on a super |
| 2412 /// super class where the index getter is defined by [getter] but the index | 2570 /// super class where the index getter is defined by [getter] but the index |
| 2413 /// setter is undefined. | 2571 /// setter is undefined. |
| 2414 /// | 2572 /// |
| 2415 /// For instance | 2573 /// For instance: |
| 2574 /// |
| 2416 /// class B { | 2575 /// class B { |
| 2417 /// operator [](index) => 42; | 2576 /// operator [](index) => 42; |
| 2418 /// } | 2577 /// } |
| 2419 /// class C extends B { | 2578 /// class C extends B { |
| 2420 /// m() => super[1] += 42; | 2579 /// m() => super[1] += 42; |
| 2421 /// } | 2580 /// } |
| 2422 /// | 2581 /// |
| 2423 R visitUnresolvedSuperSetterCompoundIndexSet( | 2582 R visitUnresolvedSuperSetterCompoundIndexSet( |
| 2424 Send node, | 2583 Send node, |
| 2425 MethodElement getter, | 2584 MethodElement getter, |
| 2426 Element element, | 2585 Element element, |
| 2427 Node index, | 2586 Node index, |
| 2428 AssignmentOperator operator, | 2587 AssignmentOperator operator, |
| 2429 Node rhs, | 2588 Node rhs, |
| 2430 A arg); | 2589 A arg); |
| 2431 | 2590 |
| 2432 /// Compound index assignment of [rhs] with [operator] to [index] on a super | 2591 /// Compound index assignment of [rhs] with [operator] to [index] on a super |
| 2433 /// super class where the index getter and setter are undefined. | 2592 /// super class where the index getter and setter are undefined. |
| 2434 /// | 2593 /// |
| 2435 /// For instance | 2594 /// For instance: |
| 2595 /// |
| 2436 /// class B { | 2596 /// class B { |
| 2437 /// } | 2597 /// } |
| 2438 /// class C extends B { | 2598 /// class C extends B { |
| 2439 /// m() => super[1] += 42; | 2599 /// m() => super[1] += 42; |
| 2440 /// } | 2600 /// } |
| 2441 /// | 2601 /// |
| 2442 R visitUnresolvedSuperCompoundIndexSet( | 2602 R visitUnresolvedSuperCompoundIndexSet( |
| 2443 Send node, | 2603 Send node, |
| 2444 Element element, | 2604 Element element, |
| 2445 Node index, | 2605 Node index, |
| 2446 AssignmentOperator operator, | 2606 AssignmentOperator operator, |
| 2447 Node rhs, | 2607 Node rhs, |
| 2448 A arg); | 2608 A arg); |
| 2449 | 2609 |
| 2450 /// Prefix expression with [operator] of the property on [receiver] whose | 2610 /// Prefix expression with [operator] of the property on [receiver] whose |
| 2451 /// getter and setter are defined by [getterSelector] and [setterSelector], | 2611 /// getter and setter are defined by [getterSelector] and [setterSelector], |
| 2452 /// respectively. | 2612 /// respectively. |
| 2453 /// | 2613 /// |
| 2454 /// For instance: | 2614 /// For instance: |
| 2615 /// |
| 2455 /// m(receiver) => ++receiver.foo; | 2616 /// m(receiver) => ++receiver.foo; |
| 2456 /// | 2617 /// |
| 2457 R visitDynamicPropertyPrefix( | 2618 R visitDynamicPropertyPrefix( |
| 2458 Send node, | 2619 Send node, |
| 2459 Node receiver, | 2620 Node receiver, |
| 2460 IncDecOperator operator, | 2621 IncDecOperator operator, |
| 2461 Selector getterSelector, | 2622 Selector getterSelector, |
| 2462 Selector setterSelector, | 2623 Selector setterSelector, |
| 2463 A arg); | 2624 A arg); |
| 2464 | 2625 |
| 2465 /// Prefix expression with [operator] of the property on a possibly null | 2626 /// Prefix expression with [operator] of the property on a possibly null |
| 2466 /// [receiver] whose getter and setter are defined by [getterSelector] and | 2627 /// [receiver] whose getter and setter are defined by [getterSelector] and |
| 2467 /// [setterSelector], respectively. | 2628 /// [setterSelector], respectively. |
| 2468 /// | 2629 /// |
| 2469 /// For instance: | 2630 /// For instance: |
| 2631 /// |
| 2470 /// m(receiver) => ++receiver?.foo; | 2632 /// m(receiver) => ++receiver?.foo; |
| 2471 /// | 2633 /// |
| 2472 R visitIfNotNullDynamicPropertyPrefix( | 2634 R visitIfNotNullDynamicPropertyPrefix( |
| 2473 Send node, | 2635 Send node, |
| 2474 Node receiver, | 2636 Node receiver, |
| 2475 IncDecOperator operator, | 2637 IncDecOperator operator, |
| 2476 Selector getterSelector, | 2638 Selector getterSelector, |
| 2477 Selector setterSelector, | 2639 Selector setterSelector, |
| 2478 A arg); | 2640 A arg); |
| 2479 | 2641 |
| 2480 /// Prefix expression with [operator] on a [parameter]. | 2642 /// Prefix expression with [operator] on a [parameter]. |
| 2481 /// | 2643 /// |
| 2482 /// For instance: | 2644 /// For instance: |
| 2645 /// |
| 2483 /// m(parameter) => ++parameter; | 2646 /// m(parameter) => ++parameter; |
| 2484 /// | 2647 /// |
| 2485 R visitParameterPrefix( | 2648 R visitParameterPrefix( |
| 2486 Send node, | 2649 Send node, |
| 2487 ParameterElement parameter, | 2650 ParameterElement parameter, |
| 2488 IncDecOperator operator, | 2651 IncDecOperator operator, |
| 2489 A arg); | 2652 A arg); |
| 2490 | 2653 |
| 2491 /// Prefix expression with [operator] on a final [parameter]. | 2654 /// Prefix expression with [operator] on a final [parameter]. |
| 2492 /// | 2655 /// |
| 2493 /// For instance: | 2656 /// For instance: |
| 2657 /// |
| 2494 /// m(final parameter) => ++parameter; | 2658 /// m(final parameter) => ++parameter; |
| 2495 /// | 2659 /// |
| 2496 R visitFinalParameterPrefix( | 2660 R visitFinalParameterPrefix( |
| 2497 Send node, | 2661 Send node, |
| 2498 ParameterElement parameter, | 2662 ParameterElement parameter, |
| 2499 IncDecOperator operator, | 2663 IncDecOperator operator, |
| 2500 A arg); | 2664 A arg); |
| 2501 | 2665 |
| 2502 /// Prefix expression with [operator] on a local [variable]. | 2666 /// Prefix expression with [operator] on a local [variable]. |
| 2503 /// | 2667 /// |
| 2504 /// For instance: | 2668 /// For instance: |
| 2669 /// |
| 2505 /// m() { | 2670 /// m() { |
| 2506 /// var variable; | 2671 /// var variable; |
| 2507 /// ++variable; | 2672 /// ++variable; |
| 2508 /// } | 2673 /// } |
| 2509 /// | 2674 /// |
| 2510 R visitLocalVariablePrefix( | 2675 R visitLocalVariablePrefix( |
| 2511 Send node, | 2676 Send node, |
| 2512 LocalVariableElement variable, | 2677 LocalVariableElement variable, |
| 2513 IncDecOperator operator, | 2678 IncDecOperator operator, |
| 2514 A arg); | 2679 A arg); |
| 2515 | 2680 |
| 2516 /// Prefix expression with [operator] on a final local [variable]. | 2681 /// Prefix expression with [operator] on a final local [variable]. |
| 2517 /// | 2682 /// |
| 2518 /// For instance: | 2683 /// For instance: |
| 2684 /// |
| 2519 /// m() { | 2685 /// m() { |
| 2520 /// final variable; | 2686 /// final variable; |
| 2521 /// ++variable; | 2687 /// ++variable; |
| 2522 /// } | 2688 /// } |
| 2523 /// | 2689 /// |
| 2524 R visitFinalLocalVariablePrefix( | 2690 R visitFinalLocalVariablePrefix( |
| 2525 Send node, | 2691 Send node, |
| 2526 LocalVariableElement variable, | 2692 LocalVariableElement variable, |
| 2527 IncDecOperator operator, | 2693 IncDecOperator operator, |
| 2528 A arg); | 2694 A arg); |
| 2529 | 2695 |
| 2530 /// Prefix expression with [operator] on a local [function]. | 2696 /// Prefix expression with [operator] on a local [function]. |
| 2531 /// | 2697 /// |
| 2532 /// For instance: | 2698 /// For instance: |
| 2699 /// |
| 2533 /// m() { | 2700 /// m() { |
| 2534 /// function() {} | 2701 /// function() {} |
| 2535 /// ++function; | 2702 /// ++function; |
| 2536 /// } | 2703 /// } |
| 2537 /// | 2704 /// |
| 2538 R visitLocalFunctionPrefix( | 2705 R visitLocalFunctionPrefix( |
| 2539 Send node, | 2706 Send node, |
| 2540 LocalFunctionElement function, | 2707 LocalFunctionElement function, |
| 2541 IncDecOperator operator, | 2708 IncDecOperator operator, |
| 2542 A arg); | 2709 A arg); |
| 2543 | 2710 |
| 2544 | 2711 |
| 2545 /// Prefix expression with [operator] of the property on `this` whose getter | 2712 /// Prefix expression with [operator] of the property on `this` whose getter |
| 2546 /// and setter are defined by [getterSelector] and [setterSelector], | 2713 /// and setter are defined by [getterSelector] and [setterSelector], |
| 2547 /// respectively. | 2714 /// respectively. |
| 2548 /// | 2715 /// |
| 2549 /// For instance: | 2716 /// For instance: |
| 2717 /// |
| 2550 /// class C { | 2718 /// class C { |
| 2551 /// m() => ++foo; | 2719 /// m() => ++foo; |
| 2552 /// } | 2720 /// } |
| 2721 /// |
| 2553 /// or | 2722 /// or |
| 2723 /// |
| 2554 /// class C { | 2724 /// class C { |
| 2555 /// m() => ++this.foo; | 2725 /// m() => ++this.foo; |
| 2556 /// } | 2726 /// } |
| 2557 /// | 2727 /// |
| 2558 R visitThisPropertyPrefix( | 2728 R visitThisPropertyPrefix( |
| 2559 Send node, | 2729 Send node, |
| 2560 IncDecOperator operator, | 2730 IncDecOperator operator, |
| 2561 Selector getterSelector, | 2731 Selector getterSelector, |
| 2562 Selector setterSelector, | 2732 Selector setterSelector, |
| 2563 A arg); | 2733 A arg); |
| 2564 | 2734 |
| 2565 /// Prefix expression with [operator] on a static [field]. | 2735 /// Prefix expression with [operator] on a static [field]. |
| 2566 /// | 2736 /// |
| 2567 /// For instance: | 2737 /// For instance: |
| 2738 /// |
| 2568 /// class C { | 2739 /// class C { |
| 2569 /// static var field; | 2740 /// static var field; |
| 2570 /// m() => ++field; | 2741 /// m() => ++field; |
| 2571 /// } | 2742 /// } |
| 2572 /// | 2743 /// |
| 2573 R visitStaticFieldPrefix( | 2744 R visitStaticFieldPrefix( |
| 2574 Send node, | 2745 Send node, |
| 2575 FieldElement field, | 2746 FieldElement field, |
| 2576 IncDecOperator operator, | 2747 IncDecOperator operator, |
| 2577 A arg); | 2748 A arg); |
| 2578 | 2749 |
| 2579 /// Prefix expression with [operator] on a final static [field]. | 2750 /// Prefix expression with [operator] on a final static [field]. |
| 2580 /// | 2751 /// |
| 2581 /// For instance: | 2752 /// For instance: |
| 2753 /// |
| 2582 /// class C { | 2754 /// class C { |
| 2583 /// static final field = 42; | 2755 /// static final field = 42; |
| 2584 /// m() => ++field; | 2756 /// m() => ++field; |
| 2585 /// } | 2757 /// } |
| 2586 /// | 2758 /// |
| 2587 R visitFinalStaticFieldPrefix( | 2759 R visitFinalStaticFieldPrefix( |
| 2588 Send node, | 2760 Send node, |
| 2589 FieldElement field, | 2761 FieldElement field, |
| 2590 IncDecOperator operator, | 2762 IncDecOperator operator, |
| 2591 A arg); | 2763 A arg); |
| 2592 | 2764 |
| 2593 /// Prefix expression with [operator] reading from a static [getter] and | 2765 /// Prefix expression with [operator] reading from a static [getter] and |
| 2594 /// writing to a static [setter]. | 2766 /// writing to a static [setter]. |
| 2595 /// | 2767 /// |
| 2596 /// For instance: | 2768 /// For instance: |
| 2769 /// |
| 2597 /// class C { | 2770 /// class C { |
| 2598 /// static get o => 0; | 2771 /// static get o => 0; |
| 2599 /// static set o(_) {} | 2772 /// static set o(_) {} |
| 2600 /// m() => ++o; | 2773 /// m() => ++o; |
| 2601 /// } | 2774 /// } |
| 2602 /// | 2775 /// |
| 2603 R visitStaticGetterSetterPrefix( | 2776 R visitStaticGetterSetterPrefix( |
| 2604 Send node, | 2777 Send node, |
| 2605 FunctionElement getter, | 2778 FunctionElement getter, |
| 2606 FunctionElement setter, | 2779 FunctionElement setter, |
| 2607 IncDecOperator operator, | 2780 IncDecOperator operator, |
| 2608 A arg); | 2781 A arg); |
| 2609 | 2782 |
| 2610 | 2783 |
| 2611 /// Prefix expression with [operator] reading from a static [method], that is, | 2784 /// Prefix expression with [operator] reading from a static [method], that is, |
| 2612 /// closurizing [method], and writing to a static [setter]. | 2785 /// closurizing [method], and writing to a static [setter]. |
| 2613 /// | 2786 /// |
| 2614 /// For instance: | 2787 /// For instance: |
| 2788 /// |
| 2615 /// class C { | 2789 /// class C { |
| 2616 /// static o() {} | 2790 /// static o() {} |
| 2617 /// static set o(_) {} | 2791 /// static set o(_) {} |
| 2618 /// m() => ++o; | 2792 /// m() => ++o; |
| 2619 /// } | 2793 /// } |
| 2620 /// | 2794 /// |
| 2621 R visitStaticMethodSetterPrefix( | 2795 R visitStaticMethodSetterPrefix( |
| 2622 Send node, | 2796 Send node, |
| 2623 FunctionElement getter, | 2797 FunctionElement getter, |
| 2624 FunctionElement setter, | 2798 FunctionElement setter, |
| 2625 IncDecOperator operator, | 2799 IncDecOperator operator, |
| 2626 A arg); | 2800 A arg); |
| 2627 | 2801 |
| 2628 /// Prefix expression with [operator] on a top level [field]. | 2802 /// Prefix expression with [operator] on a top level [field]. |
| 2629 /// | 2803 /// |
| 2630 /// For instance: | 2804 /// For instance: |
| 2805 /// |
| 2631 /// var field; | 2806 /// var field; |
| 2632 /// m() => ++field; | 2807 /// m() => ++field; |
| 2633 /// | 2808 /// |
| 2634 R visitTopLevelFieldPrefix( | 2809 R visitTopLevelFieldPrefix( |
| 2635 Send node, | 2810 Send node, |
| 2636 FieldElement field, | 2811 FieldElement field, |
| 2637 IncDecOperator operator, | 2812 IncDecOperator operator, |
| 2638 A arg); | 2813 A arg); |
| 2639 | 2814 |
| 2640 /// Prefix expression with [operator] on a final top level [field]. | 2815 /// Prefix expression with [operator] on a final top level [field]. |
| 2641 /// | 2816 /// |
| 2642 /// For instance: | 2817 /// For instance: |
| 2818 /// |
| 2643 /// final field; | 2819 /// final field; |
| 2644 /// m() => ++field; | 2820 /// m() => ++field; |
| 2645 /// | 2821 /// |
| 2646 R visitFinalTopLevelFieldPrefix( | 2822 R visitFinalTopLevelFieldPrefix( |
| 2647 Send node, | 2823 Send node, |
| 2648 FieldElement field, | 2824 FieldElement field, |
| 2649 IncDecOperator operator, | 2825 IncDecOperator operator, |
| 2650 A arg); | 2826 A arg); |
| 2651 | 2827 |
| 2652 /// Prefix expression with [operator] reading from a top level [getter] and | 2828 /// Prefix expression with [operator] reading from a top level [getter] and |
| 2653 /// writing to a top level [setter]. | 2829 /// writing to a top level [setter]. |
| 2654 /// | 2830 /// |
| 2655 /// For instance: | 2831 /// For instance: |
| 2832 /// |
| 2656 /// get o => 0; | 2833 /// get o => 0; |
| 2657 /// set o(_) {} | 2834 /// set o(_) {} |
| 2658 /// m() => ++o; | 2835 /// m() => ++o; |
| 2659 /// | 2836 /// |
| 2660 R visitTopLevelGetterSetterPrefix( | 2837 R visitTopLevelGetterSetterPrefix( |
| 2661 Send node, | 2838 Send node, |
| 2662 FunctionElement getter, | 2839 FunctionElement getter, |
| 2663 FunctionElement setter, | 2840 FunctionElement setter, |
| 2664 IncDecOperator operator, | 2841 IncDecOperator operator, |
| 2665 A arg); | 2842 A arg); |
| 2666 | 2843 |
| 2667 /// Prefix expression with [operator] reading from a top level [method], that | 2844 /// Prefix expression with [operator] reading from a top level [method], that |
| 2668 /// is, closurizing [method], and writing to a top level [setter]. | 2845 /// is, closurizing [method], and writing to a top level [setter]. |
| 2669 /// | 2846 /// |
| 2670 /// For instance: | 2847 /// For instance: |
| 2848 /// |
| 2671 /// o() {} | 2849 /// o() {} |
| 2672 /// set o(_) {} | 2850 /// set o(_) {} |
| 2673 /// m() => ++o; | 2851 /// m() => ++o; |
| 2674 /// | 2852 /// |
| 2675 R visitTopLevelMethodSetterPrefix( | 2853 R visitTopLevelMethodSetterPrefix( |
| 2676 Send node, | 2854 Send node, |
| 2677 FunctionElement method, | 2855 FunctionElement method, |
| 2678 FunctionElement setter, | 2856 FunctionElement setter, |
| 2679 IncDecOperator operator, | 2857 IncDecOperator operator, |
| 2680 A arg); | 2858 A arg); |
| 2681 | 2859 |
| 2682 /// Prefix expression with [operator] on a super [field]. | 2860 /// Prefix expression with [operator] on a super [field]. |
| 2683 /// | 2861 /// |
| 2684 /// For instance: | 2862 /// For instance: |
| 2863 /// |
| 2685 /// class B { | 2864 /// class B { |
| 2686 /// var field; | 2865 /// var field; |
| 2687 /// } | 2866 /// } |
| 2688 /// class C extends B { | 2867 /// class C extends B { |
| 2689 /// m() => ++super.field; | 2868 /// m() => ++super.field; |
| 2690 /// } | 2869 /// } |
| 2691 /// | 2870 /// |
| 2692 R visitSuperFieldPrefix( | 2871 R visitSuperFieldPrefix( |
| 2693 Send node, | 2872 Send node, |
| 2694 FieldElement field, | 2873 FieldElement field, |
| 2695 IncDecOperator operator, | 2874 IncDecOperator operator, |
| 2696 A arg); | 2875 A arg); |
| 2697 | 2876 |
| 2698 /// Prefix expression with [operator] reading from the super field [readField] | 2877 /// Prefix expression with [operator] reading from the super field [readField] |
| 2699 /// and writing to the different super field [writtenField]. | 2878 /// and writing to the different super field [writtenField]. |
| 2700 /// | 2879 /// |
| 2701 /// For instance: | 2880 /// For instance: |
| 2881 /// |
| 2702 /// class A { | 2882 /// class A { |
| 2703 /// var field; | 2883 /// var field; |
| 2704 /// } | 2884 /// } |
| 2705 /// class B extends A { | 2885 /// class B extends A { |
| 2706 /// final field; | 2886 /// final field; |
| 2707 /// } | 2887 /// } |
| 2708 /// class C extends B { | 2888 /// class C extends B { |
| 2709 /// m() => ++super.field; | 2889 /// m() => ++super.field; |
| 2710 /// } | 2890 /// } |
| 2711 /// | 2891 /// |
| 2712 R visitSuperFieldFieldPrefix( | 2892 R visitSuperFieldFieldPrefix( |
| 2713 Send node, | 2893 Send node, |
| 2714 FieldElement readField, | 2894 FieldElement readField, |
| 2715 FieldElement writtenField, | 2895 FieldElement writtenField, |
| 2716 IncDecOperator operator, | 2896 IncDecOperator operator, |
| 2717 A arg); | 2897 A arg); |
| 2718 | 2898 |
| 2719 /// Prefix expression with [operator] reading from a super [field] and writing | 2899 /// Prefix expression with [operator] reading from a super [field] and writing |
| 2720 /// to a super [setter]. | 2900 /// to a super [setter]. |
| 2721 /// | 2901 /// |
| 2722 /// For instance: | 2902 /// For instance: |
| 2903 /// |
| 2723 /// class A { | 2904 /// class A { |
| 2724 /// var field; | 2905 /// var field; |
| 2725 /// } | 2906 /// } |
| 2726 /// class B extends A { | 2907 /// class B extends A { |
| 2727 /// set field(_) {} | 2908 /// set field(_) {} |
| 2728 /// } | 2909 /// } |
| 2729 /// class C extends B { | 2910 /// class C extends B { |
| 2730 /// m() => ++super.field; | 2911 /// m() => ++super.field; |
| 2731 /// } | 2912 /// } |
| 2732 /// | 2913 /// |
| 2733 R visitSuperFieldSetterPrefix( | 2914 R visitSuperFieldSetterPrefix( |
| 2734 Send node, | 2915 Send node, |
| 2735 FieldElement field, | 2916 FieldElement field, |
| 2736 FunctionElement setter, | 2917 FunctionElement setter, |
| 2737 IncDecOperator operator, | 2918 IncDecOperator operator, |
| 2738 A arg); | 2919 A arg); |
| 2739 | 2920 |
| 2740 | 2921 |
| 2741 /// Prefix expression with [operator] reading from a super [getter] and | 2922 /// Prefix expression with [operator] reading from a super [getter] and |
| 2742 /// writing to a super [setter]. | 2923 /// writing to a super [setter]. |
| 2743 /// | 2924 /// |
| 2744 /// For instance: | 2925 /// For instance: |
| 2926 /// |
| 2745 /// class B { | 2927 /// class B { |
| 2746 /// get field => 0; | 2928 /// get field => 0; |
| 2747 /// set field(_) {} | 2929 /// set field(_) {} |
| 2748 /// } | 2930 /// } |
| 2749 /// class C extends B { | 2931 /// class C extends B { |
| 2750 /// m() => ++super.field; | 2932 /// m() => ++super.field; |
| 2751 /// } | 2933 /// } |
| 2752 /// | 2934 /// |
| 2753 R visitSuperGetterSetterPrefix( | 2935 R visitSuperGetterSetterPrefix( |
| 2754 Send node, | 2936 Send node, |
| 2755 FunctionElement getter, | 2937 FunctionElement getter, |
| 2756 FunctionElement setter, | 2938 FunctionElement setter, |
| 2757 IncDecOperator operator, | 2939 IncDecOperator operator, |
| 2758 A arg); | 2940 A arg); |
| 2759 | 2941 |
| 2760 /// Prefix expression with [operator] reading from a super [getter] and | 2942 /// Prefix expression with [operator] reading from a super [getter] and |
| 2761 /// writing to a super [field]. | 2943 /// writing to a super [field]. |
| 2762 /// | 2944 /// |
| 2763 /// For instance: | 2945 /// For instance: |
| 2946 /// |
| 2764 /// class A { | 2947 /// class A { |
| 2765 /// var field; | 2948 /// var field; |
| 2766 /// } | 2949 /// } |
| 2767 /// class B extends A { | 2950 /// class B extends A { |
| 2768 /// get field => 0; | 2951 /// get field => 0; |
| 2769 /// } | 2952 /// } |
| 2770 /// class C extends B { | 2953 /// class C extends B { |
| 2771 /// m() => ++super.field; | 2954 /// m() => ++super.field; |
| 2772 /// } | 2955 /// } |
| 2773 /// | 2956 /// |
| 2774 R visitSuperGetterFieldPrefix( | 2957 R visitSuperGetterFieldPrefix( |
| 2775 Send node, | 2958 Send node, |
| 2776 FunctionElement getter, | 2959 FunctionElement getter, |
| 2777 FieldElement field, | 2960 FieldElement field, |
| 2778 IncDecOperator operator, | 2961 IncDecOperator operator, |
| 2779 A arg); | 2962 A arg); |
| 2780 | 2963 |
| 2781 /// Prefix expression with [operator] reading from a super [method], that is, | 2964 /// Prefix expression with [operator] reading from a super [method], that is, |
| 2782 /// closurizing [method], and writing to a super [setter]. | 2965 /// closurizing [method], and writing to a super [setter]. |
| 2783 /// | 2966 /// |
| 2784 /// For instance: | 2967 /// For instance: |
| 2968 /// |
| 2785 /// class B { | 2969 /// class B { |
| 2786 /// o() {} | 2970 /// o() {} |
| 2787 /// set o(_) {} | 2971 /// set o(_) {} |
| 2788 /// } | 2972 /// } |
| 2789 /// class C extends B { | 2973 /// class C extends B { |
| 2790 /// m() => ++super.o; | 2974 /// m() => ++super.o; |
| 2791 /// } | 2975 /// } |
| 2792 /// | 2976 /// |
| 2793 R visitSuperMethodSetterPrefix( | 2977 R visitSuperMethodSetterPrefix( |
| 2794 Send node, | 2978 Send node, |
| 2795 FunctionElement method, | 2979 FunctionElement method, |
| 2796 FunctionElement setter, | 2980 FunctionElement setter, |
| 2797 IncDecOperator operator, | 2981 IncDecOperator operator, |
| 2798 A arg); | 2982 A arg); |
| 2799 | 2983 |
| 2800 /// Prefix expression with [operator] reading from a super [method], that is, | 2984 /// Prefix expression with [operator] reading from a super [method], that is, |
| 2801 /// closurizing [method], and writing to an unresolved super setter. | 2985 /// closurizing [method], and writing to an unresolved super setter. |
| 2802 /// | 2986 /// |
| 2803 /// For instance: | 2987 /// For instance: |
| 2988 /// |
| 2804 /// class B { | 2989 /// class B { |
| 2805 /// o() {} | 2990 /// o() {} |
| 2806 /// set o(_) {} | 2991 /// set o(_) {} |
| 2807 /// } | 2992 /// } |
| 2808 /// class C extends B { | 2993 /// class C extends B { |
| 2809 /// m() => ++super.o; | 2994 /// m() => ++super.o; |
| 2810 /// } | 2995 /// } |
| 2811 /// | 2996 /// |
| 2812 R visitSuperMethodPrefix( | 2997 R visitSuperMethodPrefix( |
| 2813 Send node, | 2998 Send node, |
| 2814 FunctionElement method, | 2999 FunctionElement method, |
| 2815 IncDecOperator operator, | 3000 IncDecOperator operator, |
| 2816 A arg); | 3001 A arg); |
| 2817 | 3002 |
| 2818 /// Prefix expression with [operator] reading from an unresolved super getter | 3003 /// Prefix expression with [operator] reading from an unresolved super getter |
| 2819 /// and writing to a super [setter]. | 3004 /// and writing to a super [setter]. |
| 2820 /// | 3005 /// |
| 2821 /// For instance | 3006 /// For instance: |
| 3007 /// |
| 2822 /// class B { | 3008 /// class B { |
| 2823 /// set o(_) {} | 3009 /// set o(_) {} |
| 2824 /// } | 3010 /// } |
| 2825 /// class C extends B { | 3011 /// class C extends B { |
| 2826 /// m() => ++super.o; | 3012 /// m() => ++super.o; |
| 2827 /// } | 3013 /// } |
| 2828 /// | 3014 /// |
| 2829 /// | 3015 /// |
| 2830 R visitUnresolvedSuperGetterPrefix( | 3016 R visitUnresolvedSuperGetterPrefix( |
| 2831 Send node, | 3017 Send node, |
| 2832 Element element, | 3018 Element element, |
| 2833 MethodElement setter, | 3019 MethodElement setter, |
| 2834 IncDecOperator operator, | 3020 IncDecOperator operator, |
| 2835 A arg); | 3021 A arg); |
| 2836 | 3022 |
| 2837 /// Prefix expression with [operator] reading from a super [getter] and | 3023 /// Prefix expression with [operator] reading from a super [getter] and |
| 2838 /// writing to an unresolved super setter. | 3024 /// writing to an unresolved super setter. |
| 2839 /// | 3025 /// |
| 2840 /// For instance | 3026 /// For instance: |
| 3027 /// |
| 2841 /// class B { | 3028 /// class B { |
| 2842 /// get o => 42 | 3029 /// get o => 42 |
| 2843 /// } | 3030 /// } |
| 2844 /// class C extends B { | 3031 /// class C extends B { |
| 2845 /// m() => ++super.o; | 3032 /// m() => ++super.o; |
| 2846 /// } | 3033 /// } |
| 2847 /// | 3034 /// |
| 2848 /// | 3035 /// |
| 2849 R visitUnresolvedSuperSetterPrefix( | 3036 R visitUnresolvedSuperSetterPrefix( |
| 2850 Send node, | 3037 Send node, |
| 2851 MethodElement getter, | 3038 MethodElement getter, |
| 2852 Element element, | 3039 Element element, |
| 2853 IncDecOperator operator, | 3040 IncDecOperator operator, |
| 2854 A arg); | 3041 A arg); |
| 2855 | 3042 |
| 2856 /// Prefix expression with [operator] on a type literal for a class [element]. | 3043 /// Prefix expression with [operator] on a type literal for a class [element]. |
| 2857 /// | 3044 /// |
| 2858 /// For instance: | 3045 /// For instance: |
| 3046 /// |
| 2859 /// class C {} | 3047 /// class C {} |
| 2860 /// m() => ++C; | 3048 /// m() => ++C; |
| 2861 /// | 3049 /// |
| 2862 R visitClassTypeLiteralPrefix( | 3050 R visitClassTypeLiteralPrefix( |
| 2863 Send node, | 3051 Send node, |
| 2864 ConstantExpression constant, | 3052 ConstantExpression constant, |
| 2865 IncDecOperator operator, | 3053 IncDecOperator operator, |
| 2866 A arg); | 3054 A arg); |
| 2867 | 3055 |
| 2868 /// Prefix expression with [operator] on a type literal for a typedef | 3056 /// Prefix expression with [operator] on a type literal for a typedef |
| 2869 /// [element]. | 3057 /// [element]. |
| 2870 /// | 3058 /// |
| 2871 /// For instance: | 3059 /// For instance: |
| 3060 /// |
| 2872 /// typedef F(); | 3061 /// typedef F(); |
| 2873 /// m() => ++F; | 3062 /// m() => ++F; |
| 2874 /// | 3063 /// |
| 2875 R visitTypedefTypeLiteralPrefix( | 3064 R visitTypedefTypeLiteralPrefix( |
| 2876 Send node, | 3065 Send node, |
| 2877 ConstantExpression constant, | 3066 ConstantExpression constant, |
| 2878 IncDecOperator operator, | 3067 IncDecOperator operator, |
| 2879 A arg); | 3068 A arg); |
| 2880 | 3069 |
| 2881 /// Prefix expression with [operator] on a type literal for a type variable | 3070 /// Prefix expression with [operator] on a type literal for a type variable |
| 2882 /// [element]. | 3071 /// [element]. |
| 2883 /// | 3072 /// |
| 2884 /// For instance: | 3073 /// For instance: |
| 3074 /// |
| 2885 /// class C<T> { | 3075 /// class C<T> { |
| 2886 /// m() => ++T; | 3076 /// m() => ++T; |
| 2887 /// } | 3077 /// } |
| 2888 /// | 3078 /// |
| 2889 R visitTypeVariableTypeLiteralPrefix( | 3079 R visitTypeVariableTypeLiteralPrefix( |
| 2890 Send node, | 3080 Send node, |
| 2891 TypeVariableElement element, | 3081 TypeVariableElement element, |
| 2892 IncDecOperator operator, | 3082 IncDecOperator operator, |
| 2893 A arg); | 3083 A arg); |
| 2894 | 3084 |
| 2895 /// Prefix expression with [operator] on the type literal for `dynamic`. | 3085 /// Prefix expression with [operator] on the type literal for `dynamic`. |
| 2896 /// | 3086 /// |
| 2897 /// For instance: | 3087 /// For instance: |
| 3088 /// |
| 2898 /// m() => ++dynamic; | 3089 /// m() => ++dynamic; |
| 2899 /// | 3090 /// |
| 2900 R visitDynamicTypeLiteralPrefix( | 3091 R visitDynamicTypeLiteralPrefix( |
| 2901 Send node, | 3092 Send node, |
| 2902 ConstantExpression constant, | 3093 ConstantExpression constant, |
| 2903 IncDecOperator operator, | 3094 IncDecOperator operator, |
| 2904 A arg); | 3095 A arg); |
| 2905 | 3096 |
| 2906 /// Postfix expression with [operator] of the property on [receiver] whose | 3097 /// Postfix expression with [operator] of the property on [receiver] whose |
| 2907 /// getter and setter are defined by [getterSelector] and [setterSelector], | 3098 /// getter and setter are defined by [getterSelector] and [setterSelector], |
| 2908 /// respectively. | 3099 /// respectively. |
| 2909 /// | 3100 /// |
| 2910 /// For instance: | 3101 /// For instance: |
| 3102 /// |
| 2911 /// m(receiver) => receiver.foo++; | 3103 /// m(receiver) => receiver.foo++; |
| 2912 /// | 3104 /// |
| 2913 R visitDynamicPropertyPostfix( | 3105 R visitDynamicPropertyPostfix( |
| 2914 Send node, | 3106 Send node, |
| 2915 Node receiver, | 3107 Node receiver, |
| 2916 IncDecOperator operator, | 3108 IncDecOperator operator, |
| 2917 Selector getterSelector, | 3109 Selector getterSelector, |
| 2918 Selector setterSelector, | 3110 Selector setterSelector, |
| 2919 A arg); | 3111 A arg); |
| 2920 | 3112 |
| 2921 /// Postfix expression with [operator] of the property on a possibly null | 3113 /// Postfix expression with [operator] of the property on a possibly null |
| 2922 /// [receiver] whose getter and setter are defined by [getterSelector] and | 3114 /// [receiver] whose getter and setter are defined by [getterSelector] and |
| 2923 /// [setterSelector], respectively. | 3115 /// [setterSelector], respectively. |
| 2924 /// | 3116 /// |
| 2925 /// For instance: | 3117 /// For instance: |
| 3118 /// |
| 2926 /// m(receiver) => receiver?.foo++; | 3119 /// m(receiver) => receiver?.foo++; |
| 2927 /// | 3120 /// |
| 2928 R visitIfNotNullDynamicPropertyPostfix( | 3121 R visitIfNotNullDynamicPropertyPostfix( |
| 2929 Send node, | 3122 Send node, |
| 2930 Node receiver, | 3123 Node receiver, |
| 2931 IncDecOperator operator, | 3124 IncDecOperator operator, |
| 2932 Selector getterSelector, | 3125 Selector getterSelector, |
| 2933 Selector setterSelector, | 3126 Selector setterSelector, |
| 2934 A arg); | 3127 A arg); |
| 2935 | 3128 |
| 2936 /// Postfix expression with [operator] on a [parameter]. | 3129 /// Postfix expression with [operator] on a [parameter]. |
| 2937 /// | 3130 /// |
| 2938 /// For instance: | 3131 /// For instance: |
| 3132 /// |
| 2939 /// m(parameter) => parameter++; | 3133 /// m(parameter) => parameter++; |
| 2940 /// | 3134 /// |
| 2941 R visitParameterPostfix( | 3135 R visitParameterPostfix( |
| 2942 Send node, | 3136 Send node, |
| 2943 ParameterElement parameter, | 3137 ParameterElement parameter, |
| 2944 IncDecOperator operator, | 3138 IncDecOperator operator, |
| 2945 A arg); | 3139 A arg); |
| 2946 | 3140 |
| 2947 /// Postfix expression with [operator] on a final [parameter]. | 3141 /// Postfix expression with [operator] on a final [parameter]. |
| 2948 /// | 3142 /// |
| 2949 /// For instance: | 3143 /// For instance: |
| 3144 /// |
| 2950 /// m(final parameter) => parameter++; | 3145 /// m(final parameter) => parameter++; |
| 2951 /// | 3146 /// |
| 2952 R visitFinalParameterPostfix( | 3147 R visitFinalParameterPostfix( |
| 2953 Send node, | 3148 Send node, |
| 2954 ParameterElement parameter, | 3149 ParameterElement parameter, |
| 2955 IncDecOperator operator, | 3150 IncDecOperator operator, |
| 2956 A arg); | 3151 A arg); |
| 2957 | 3152 |
| 2958 /// Postfix expression with [operator] on a local [variable]. | 3153 /// Postfix expression with [operator] on a local [variable]. |
| 2959 /// | 3154 /// |
| 2960 /// For instance: | 3155 /// For instance: |
| 3156 /// |
| 2961 /// m() { | 3157 /// m() { |
| 2962 /// var variable; | 3158 /// var variable; |
| 2963 /// variable++; | 3159 /// variable++; |
| 2964 /// } | 3160 /// } |
| 2965 /// | 3161 /// |
| 2966 R visitLocalVariablePostfix( | 3162 R visitLocalVariablePostfix( |
| 2967 Send node, | 3163 Send node, |
| 2968 LocalVariableElement variable, | 3164 LocalVariableElement variable, |
| 2969 IncDecOperator operator, | 3165 IncDecOperator operator, |
| 2970 A arg); | 3166 A arg); |
| 2971 | 3167 |
| 2972 /// Postfix expression with [operator] on a final local [variable]. | 3168 /// Postfix expression with [operator] on a final local [variable]. |
| 2973 /// | 3169 /// |
| 2974 /// For instance: | 3170 /// For instance: |
| 3171 /// |
| 2975 /// m() { | 3172 /// m() { |
| 2976 /// final variable; | 3173 /// final variable; |
| 2977 /// variable++; | 3174 /// variable++; |
| 2978 /// } | 3175 /// } |
| 2979 /// | 3176 /// |
| 2980 R visitFinalLocalVariablePostfix( | 3177 R visitFinalLocalVariablePostfix( |
| 2981 Send node, | 3178 Send node, |
| 2982 LocalVariableElement variable, | 3179 LocalVariableElement variable, |
| 2983 IncDecOperator operator, | 3180 IncDecOperator operator, |
| 2984 A arg); | 3181 A arg); |
| 2985 | 3182 |
| 2986 /// Postfix expression with [operator] on a local [function]. | 3183 /// Postfix expression with [operator] on a local [function]. |
| 2987 /// | 3184 /// |
| 2988 /// For instance: | 3185 /// For instance: |
| 3186 /// |
| 2989 /// m() { | 3187 /// m() { |
| 2990 /// function() {} | 3188 /// function() {} |
| 2991 /// function++; | 3189 /// function++; |
| 2992 /// } | 3190 /// } |
| 2993 /// | 3191 /// |
| 2994 R visitLocalFunctionPostfix( | 3192 R visitLocalFunctionPostfix( |
| 2995 Send node, | 3193 Send node, |
| 2996 LocalFunctionElement function, | 3194 LocalFunctionElement function, |
| 2997 IncDecOperator operator, | 3195 IncDecOperator operator, |
| 2998 A arg); | 3196 A arg); |
| 2999 | 3197 |
| 3000 | 3198 |
| 3001 /// Postfix expression with [operator] of the property on `this` whose getter | 3199 /// Postfix expression with [operator] of the property on `this` whose getter |
| 3002 /// and setter are defined by [getterSelector] and [setterSelector], | 3200 /// and setter are defined by [getterSelector] and [setterSelector], |
| 3003 /// respectively. | 3201 /// respectively. |
| 3004 /// | 3202 /// |
| 3005 /// For instance: | 3203 /// For instance: |
| 3204 /// |
| 3006 /// class C { | 3205 /// class C { |
| 3007 /// m() => foo++; | 3206 /// m() => foo++; |
| 3008 /// } | 3207 /// } |
| 3208 /// |
| 3009 /// or | 3209 /// or |
| 3210 /// |
| 3010 /// class C { | 3211 /// class C { |
| 3011 /// m() => this.foo++; | 3212 /// m() => this.foo++; |
| 3012 /// } | 3213 /// } |
| 3013 /// | 3214 /// |
| 3014 R visitThisPropertyPostfix( | 3215 R visitThisPropertyPostfix( |
| 3015 Send node, | 3216 Send node, |
| 3016 IncDecOperator operator, | 3217 IncDecOperator operator, |
| 3017 Selector getterSelector, | 3218 Selector getterSelector, |
| 3018 Selector setterSelector, | 3219 Selector setterSelector, |
| 3019 A arg); | 3220 A arg); |
| 3020 | 3221 |
| 3021 /// Postfix expression with [operator] on a static [field]. | 3222 /// Postfix expression with [operator] on a static [field]. |
| 3022 /// | 3223 /// |
| 3023 /// For instance: | 3224 /// For instance: |
| 3225 /// |
| 3024 /// class C { | 3226 /// class C { |
| 3025 /// static var field; | 3227 /// static var field; |
| 3026 /// m() => field++; | 3228 /// m() => field++; |
| 3027 /// } | 3229 /// } |
| 3028 /// | 3230 /// |
| 3029 R visitStaticFieldPostfix( | 3231 R visitStaticFieldPostfix( |
| 3030 Send node, | 3232 Send node, |
| 3031 FieldElement field, | 3233 FieldElement field, |
| 3032 IncDecOperator operator, | 3234 IncDecOperator operator, |
| 3033 A arg); | 3235 A arg); |
| 3034 | 3236 |
| 3035 /// Postfix expression with [operator] on a final static [field]. | 3237 /// Postfix expression with [operator] on a final static [field]. |
| 3036 /// | 3238 /// |
| 3037 /// For instance: | 3239 /// For instance: |
| 3240 /// |
| 3038 /// class C { | 3241 /// class C { |
| 3039 /// static final field; | 3242 /// static final field; |
| 3040 /// m() => field++; | 3243 /// m() => field++; |
| 3041 /// } | 3244 /// } |
| 3042 /// | 3245 /// |
| 3043 R visitFinalStaticFieldPostfix( | 3246 R visitFinalStaticFieldPostfix( |
| 3044 Send node, | 3247 Send node, |
| 3045 FieldElement field, | 3248 FieldElement field, |
| 3046 IncDecOperator operator, | 3249 IncDecOperator operator, |
| 3047 A arg); | 3250 A arg); |
| 3048 | 3251 |
| 3049 /// Postfix expression with [operator] reading from a static [getter] and | 3252 /// Postfix expression with [operator] reading from a static [getter] and |
| 3050 /// writing to a static [setter]. | 3253 /// writing to a static [setter]. |
| 3051 /// | 3254 /// |
| 3052 /// For instance: | 3255 /// For instance: |
| 3256 /// |
| 3053 /// class C { | 3257 /// class C { |
| 3054 /// static get o => 0; | 3258 /// static get o => 0; |
| 3055 /// static set o(_) {} | 3259 /// static set o(_) {} |
| 3056 /// m() => o++; | 3260 /// m() => o++; |
| 3057 /// } | 3261 /// } |
| 3058 /// | 3262 /// |
| 3059 R visitStaticGetterSetterPostfix( | 3263 R visitStaticGetterSetterPostfix( |
| 3060 Send node, | 3264 Send node, |
| 3061 FunctionElement getter, | 3265 FunctionElement getter, |
| 3062 FunctionElement setter, | 3266 FunctionElement setter, |
| 3063 IncDecOperator operator, | 3267 IncDecOperator operator, |
| 3064 A arg); | 3268 A arg); |
| 3065 | 3269 |
| 3066 | 3270 |
| 3067 /// Postfix expression with [operator] reading from a static [method], that | 3271 /// Postfix expression with [operator] reading from a static [method], that |
| 3068 /// is, closurizing [method], and writing to a static [setter]. | 3272 /// is, closurizing [method], and writing to a static [setter]. |
| 3069 /// | 3273 /// |
| 3070 /// For instance: | 3274 /// For instance: |
| 3275 /// |
| 3071 /// class C { | 3276 /// class C { |
| 3072 /// static o() {} | 3277 /// static o() {} |
| 3073 /// static set o(_) {} | 3278 /// static set o(_) {} |
| 3074 /// m() => o++; | 3279 /// m() => o++; |
| 3075 /// } | 3280 /// } |
| 3076 /// | 3281 /// |
| 3077 R visitStaticMethodSetterPostfix( | 3282 R visitStaticMethodSetterPostfix( |
| 3078 Send node, | 3283 Send node, |
| 3079 FunctionElement getter, | 3284 FunctionElement getter, |
| 3080 FunctionElement setter, | 3285 FunctionElement setter, |
| 3081 IncDecOperator operator, | 3286 IncDecOperator operator, |
| 3082 A arg); | 3287 A arg); |
| 3083 | 3288 |
| 3084 /// Postfix expression with [operator] on a top level [field]. | 3289 /// Postfix expression with [operator] on a top level [field]. |
| 3085 /// | 3290 /// |
| 3086 /// For instance: | 3291 /// For instance: |
| 3292 /// |
| 3087 /// var field; | 3293 /// var field; |
| 3088 /// m() => field++; | 3294 /// m() => field++; |
| 3089 /// | 3295 /// |
| 3090 R visitTopLevelFieldPostfix( | 3296 R visitTopLevelFieldPostfix( |
| 3091 Send node, | 3297 Send node, |
| 3092 FieldElement field, | 3298 FieldElement field, |
| 3093 IncDecOperator operator, | 3299 IncDecOperator operator, |
| 3094 A arg); | 3300 A arg); |
| 3095 | 3301 |
| 3096 /// Postfix expression with [operator] on a final top level [field]. | 3302 /// Postfix expression with [operator] on a final top level [field]. |
| 3097 /// | 3303 /// |
| 3098 /// For instance: | 3304 /// For instance: |
| 3305 /// |
| 3099 /// final field = 42; | 3306 /// final field = 42; |
| 3100 /// m() => field++; | 3307 /// m() => field++; |
| 3101 /// | 3308 /// |
| 3102 R visitFinalTopLevelFieldPostfix( | 3309 R visitFinalTopLevelFieldPostfix( |
| 3103 Send node, | 3310 Send node, |
| 3104 FieldElement field, | 3311 FieldElement field, |
| 3105 IncDecOperator operator, | 3312 IncDecOperator operator, |
| 3106 A arg); | 3313 A arg); |
| 3107 | 3314 |
| 3108 /// Postfix expression with [operator] reading from a top level [getter] and | 3315 /// Postfix expression with [operator] reading from a top level [getter] and |
| 3109 /// writing to a top level [setter]. | 3316 /// writing to a top level [setter]. |
| 3110 /// | 3317 /// |
| 3111 /// For instance: | 3318 /// For instance: |
| 3319 /// |
| 3112 /// get o => 0; | 3320 /// get o => 0; |
| 3113 /// set o(_) {} | 3321 /// set o(_) {} |
| 3114 /// m() => o++; | 3322 /// m() => o++; |
| 3115 /// | 3323 /// |
| 3116 R visitTopLevelGetterSetterPostfix( | 3324 R visitTopLevelGetterSetterPostfix( |
| 3117 Send node, | 3325 Send node, |
| 3118 FunctionElement getter, | 3326 FunctionElement getter, |
| 3119 FunctionElement setter, | 3327 FunctionElement setter, |
| 3120 IncDecOperator operator, | 3328 IncDecOperator operator, |
| 3121 A arg); | 3329 A arg); |
| 3122 | 3330 |
| 3123 /// Postfix expression with [operator] reading from a top level [method], that | 3331 /// Postfix expression with [operator] reading from a top level [method], that |
| 3124 /// is, closurizing [method], and writing to a top level [setter]. | 3332 /// is, closurizing [method], and writing to a top level [setter]. |
| 3125 /// | 3333 /// |
| 3126 /// For instance: | 3334 /// For instance: |
| 3335 /// |
| 3127 /// o() {} | 3336 /// o() {} |
| 3128 /// set o(_) {} | 3337 /// set o(_) {} |
| 3129 /// m() => o++; | 3338 /// m() => o++; |
| 3130 /// | 3339 /// |
| 3131 R visitTopLevelMethodSetterPostfix( | 3340 R visitTopLevelMethodSetterPostfix( |
| 3132 Send node, | 3341 Send node, |
| 3133 FunctionElement method, | 3342 FunctionElement method, |
| 3134 FunctionElement setter, | 3343 FunctionElement setter, |
| 3135 IncDecOperator operator, | 3344 IncDecOperator operator, |
| 3136 A arg); | 3345 A arg); |
| 3137 | 3346 |
| 3138 /// Postfix expression with [operator] on a super [field]. | 3347 /// Postfix expression with [operator] on a super [field]. |
| 3139 /// | 3348 /// |
| 3140 /// For instance: | 3349 /// For instance: |
| 3350 /// |
| 3141 /// class B { | 3351 /// class B { |
| 3142 /// var field; | 3352 /// var field; |
| 3143 /// } | 3353 /// } |
| 3144 /// class C extends B { | 3354 /// class C extends B { |
| 3145 /// m() => super.field++; | 3355 /// m() => super.field++; |
| 3146 /// } | 3356 /// } |
| 3147 /// | 3357 /// |
| 3148 R visitSuperFieldPostfix( | 3358 R visitSuperFieldPostfix( |
| 3149 Send node, | 3359 Send node, |
| 3150 FieldElement field, | 3360 FieldElement field, |
| 3151 IncDecOperator operator, | 3361 IncDecOperator operator, |
| 3152 A arg); | 3362 A arg); |
| 3153 | 3363 |
| 3154 /// Postfix expression with [operator] reading from the super field | 3364 /// Postfix expression with [operator] reading from the super field |
| 3155 /// [readField] and writing to the different super field [writtenField]. | 3365 /// [readField] and writing to the different super field [writtenField]. |
| 3156 /// | 3366 /// |
| 3157 /// For instance: | 3367 /// For instance: |
| 3368 /// |
| 3158 /// class A { | 3369 /// class A { |
| 3159 /// var field; | 3370 /// var field; |
| 3160 /// } | 3371 /// } |
| 3161 /// class B extends A { | 3372 /// class B extends A { |
| 3162 /// final field; | 3373 /// final field; |
| 3163 /// } | 3374 /// } |
| 3164 /// class C extends B { | 3375 /// class C extends B { |
| 3165 /// m() => super.field++; | 3376 /// m() => super.field++; |
| 3166 /// } | 3377 /// } |
| 3167 /// | 3378 /// |
| 3168 R visitSuperFieldFieldPostfix( | 3379 R visitSuperFieldFieldPostfix( |
| 3169 Send node, | 3380 Send node, |
| 3170 FieldElement readField, | 3381 FieldElement readField, |
| 3171 FieldElement writtenField, | 3382 FieldElement writtenField, |
| 3172 IncDecOperator operator, | 3383 IncDecOperator operator, |
| 3173 A arg); | 3384 A arg); |
| 3174 | 3385 |
| 3175 /// Postfix expression with [operator] reading from a super [field] and | 3386 /// Postfix expression with [operator] reading from a super [field] and |
| 3176 /// writing to a super [setter]. | 3387 /// writing to a super [setter]. |
| 3177 /// | 3388 /// |
| 3178 /// For instance: | 3389 /// For instance: |
| 3390 /// |
| 3179 /// class A { | 3391 /// class A { |
| 3180 /// var field; | 3392 /// var field; |
| 3181 /// } | 3393 /// } |
| 3182 /// class B extends A { | 3394 /// class B extends A { |
| 3183 /// set field(_) {} | 3395 /// set field(_) {} |
| 3184 /// } | 3396 /// } |
| 3185 /// class C extends B { | 3397 /// class C extends B { |
| 3186 /// m() => super.field++; | 3398 /// m() => super.field++; |
| 3187 /// } | 3399 /// } |
| 3188 /// | 3400 /// |
| 3189 R visitSuperFieldSetterPostfix( | 3401 R visitSuperFieldSetterPostfix( |
| 3190 Send node, | 3402 Send node, |
| 3191 FieldElement field, | 3403 FieldElement field, |
| 3192 FunctionElement setter, | 3404 FunctionElement setter, |
| 3193 IncDecOperator operator, | 3405 IncDecOperator operator, |
| 3194 A arg); | 3406 A arg); |
| 3195 | 3407 |
| 3196 | 3408 |
| 3197 /// Postfix expression with [operator] reading from a super [getter] and | 3409 /// Postfix expression with [operator] reading from a super [getter] and |
| 3198 /// writing to a super [setter]. | 3410 /// writing to a super [setter]. |
| 3199 /// | 3411 /// |
| 3200 /// For instance: | 3412 /// For instance: |
| 3413 /// |
| 3201 /// class B { | 3414 /// class B { |
| 3202 /// get field => 0; | 3415 /// get field => 0; |
| 3203 /// set field(_) {} | 3416 /// set field(_) {} |
| 3204 /// } | 3417 /// } |
| 3205 /// class C extends B { | 3418 /// class C extends B { |
| 3206 /// m() => super.field++; | 3419 /// m() => super.field++; |
| 3207 /// } | 3420 /// } |
| 3208 /// | 3421 /// |
| 3209 R visitSuperGetterSetterPostfix( | 3422 R visitSuperGetterSetterPostfix( |
| 3210 Send node, | 3423 Send node, |
| 3211 FunctionElement getter, | 3424 FunctionElement getter, |
| 3212 FunctionElement setter, | 3425 FunctionElement setter, |
| 3213 IncDecOperator operator, | 3426 IncDecOperator operator, |
| 3214 A arg); | 3427 A arg); |
| 3215 | 3428 |
| 3216 /// Postfix expression with [operator] reading from a super [getter] and | 3429 /// Postfix expression with [operator] reading from a super [getter] and |
| 3217 /// writing to a super [field]. | 3430 /// writing to a super [field]. |
| 3218 /// | 3431 /// |
| 3219 /// For instance: | 3432 /// For instance: |
| 3433 /// |
| 3220 /// class A { | 3434 /// class A { |
| 3221 /// var field; | 3435 /// var field; |
| 3222 /// } | 3436 /// } |
| 3223 /// class B extends A { | 3437 /// class B extends A { |
| 3224 /// get field => 0; | 3438 /// get field => 0; |
| 3225 /// } | 3439 /// } |
| 3226 /// class C extends B { | 3440 /// class C extends B { |
| 3227 /// m() => super.field++; | 3441 /// m() => super.field++; |
| 3228 /// } | 3442 /// } |
| 3229 /// | 3443 /// |
| 3230 R visitSuperGetterFieldPostfix( | 3444 R visitSuperGetterFieldPostfix( |
| 3231 Send node, | 3445 Send node, |
| 3232 FunctionElement getter, | 3446 FunctionElement getter, |
| 3233 FieldElement field, | 3447 FieldElement field, |
| 3234 IncDecOperator operator, | 3448 IncDecOperator operator, |
| 3235 A arg); | 3449 A arg); |
| 3236 | 3450 |
| 3237 /// Postfix expression with [operator] reading from a super [method], that is, | 3451 /// Postfix expression with [operator] reading from a super [method], that is, |
| 3238 /// closurizing [method], and writing to a super [setter]. | 3452 /// closurizing [method], and writing to a super [setter]. |
| 3239 /// | 3453 /// |
| 3240 /// For instance: | 3454 /// For instance: |
| 3455 /// |
| 3241 /// class B { | 3456 /// class B { |
| 3242 /// o() {} | 3457 /// o() {} |
| 3243 /// set o(_) {} | 3458 /// set o(_) {} |
| 3244 /// } | 3459 /// } |
| 3245 /// class C extends B { | 3460 /// class C extends B { |
| 3246 /// m() => super.o++; | 3461 /// m() => super.o++; |
| 3247 /// } | 3462 /// } |
| 3248 /// | 3463 /// |
| 3249 R visitSuperMethodSetterPostfix( | 3464 R visitSuperMethodSetterPostfix( |
| 3250 Send node, | 3465 Send node, |
| 3251 FunctionElement method, | 3466 FunctionElement method, |
| 3252 FunctionElement setter, | 3467 FunctionElement setter, |
| 3253 IncDecOperator operator, | 3468 IncDecOperator operator, |
| 3254 A arg); | 3469 A arg); |
| 3255 | 3470 |
| 3256 /// Postfix expression with [operator] reading from a super [method], that is, | 3471 /// Postfix expression with [operator] reading from a super [method], that is, |
| 3257 /// closurizing [method], and writing to an unresolved super. | 3472 /// closurizing [method], and writing to an unresolved super. |
| 3258 /// | 3473 /// |
| 3259 /// For instance: | 3474 /// For instance: |
| 3475 /// |
| 3260 /// class B { | 3476 /// class B { |
| 3261 /// o() {} | 3477 /// o() {} |
| 3262 /// set o(_) {} | 3478 /// set o(_) {} |
| 3263 /// } | 3479 /// } |
| 3264 /// class C extends B { | 3480 /// class C extends B { |
| 3265 /// m() => super.o++; | 3481 /// m() => super.o++; |
| 3266 /// } | 3482 /// } |
| 3267 /// | 3483 /// |
| 3268 R visitSuperMethodPostfix( | 3484 R visitSuperMethodPostfix( |
| 3269 Send node, | 3485 Send node, |
| 3270 FunctionElement method, | 3486 FunctionElement method, |
| 3271 IncDecOperator operator, | 3487 IncDecOperator operator, |
| 3272 A arg); | 3488 A arg); |
| 3273 | 3489 |
| 3274 /// Prefix expression with [operator] reading from an unresolved super getter | 3490 /// Prefix expression with [operator] reading from an unresolved super getter |
| 3275 /// and writing to a super [setter]. | 3491 /// and writing to a super [setter]. |
| 3276 /// | 3492 /// |
| 3277 /// For instance | 3493 /// For instance: |
| 3494 /// |
| 3278 /// class B { | 3495 /// class B { |
| 3279 /// set o(_) {} | 3496 /// set o(_) {} |
| 3280 /// } | 3497 /// } |
| 3281 /// class C extends B { | 3498 /// class C extends B { |
| 3282 /// m() => super.o++; | 3499 /// m() => super.o++; |
| 3283 /// } | 3500 /// } |
| 3284 /// | 3501 /// |
| 3285 /// | 3502 /// |
| 3286 R visitUnresolvedSuperGetterPostfix( | 3503 R visitUnresolvedSuperGetterPostfix( |
| 3287 Send node, | 3504 Send node, |
| 3288 Element element, | 3505 Element element, |
| 3289 MethodElement setter, | 3506 MethodElement setter, |
| 3290 IncDecOperator operator, | 3507 IncDecOperator operator, |
| 3291 A arg); | 3508 A arg); |
| 3292 | 3509 |
| 3293 /// Prefix expression with [operator] reading from a super [getter] and | 3510 /// Prefix expression with [operator] reading from a super [getter] and |
| 3294 /// writing to an unresolved super setter. | 3511 /// writing to an unresolved super setter. |
| 3295 /// | 3512 /// |
| 3296 /// For instance | 3513 /// For instance: |
| 3514 /// |
| 3297 /// class B { | 3515 /// class B { |
| 3298 /// get o => 42 | 3516 /// get o => 42 |
| 3299 /// } | 3517 /// } |
| 3300 /// class C extends B { | 3518 /// class C extends B { |
| 3301 /// m() => super.o++; | 3519 /// m() => super.o++; |
| 3302 /// } | 3520 /// } |
| 3303 /// | 3521 /// |
| 3304 /// | 3522 /// |
| 3305 R visitUnresolvedSuperSetterPostfix( | 3523 R visitUnresolvedSuperSetterPostfix( |
| 3306 Send node, | 3524 Send node, |
| 3307 MethodElement getter, | 3525 MethodElement getter, |
| 3308 Element element, | 3526 Element element, |
| 3309 IncDecOperator operator, | 3527 IncDecOperator operator, |
| 3310 A arg); | 3528 A arg); |
| 3311 | 3529 |
| 3312 /// Postfix expression with [operator] on a type literal for a class | 3530 /// Postfix expression with [operator] on a type literal for a class |
| 3313 /// [element]. | 3531 /// [element]. |
| 3314 /// | 3532 /// |
| 3315 /// For instance: | 3533 /// For instance: |
| 3534 /// |
| 3316 /// class C {} | 3535 /// class C {} |
| 3317 /// m() => C++; | 3536 /// m() => C++; |
| 3318 /// | 3537 /// |
| 3319 R visitClassTypeLiteralPostfix( | 3538 R visitClassTypeLiteralPostfix( |
| 3320 Send node, | 3539 Send node, |
| 3321 ConstantExpression constant, | 3540 ConstantExpression constant, |
| 3322 IncDecOperator operator, | 3541 IncDecOperator operator, |
| 3323 A arg); | 3542 A arg); |
| 3324 | 3543 |
| 3325 /// Postfix expression with [operator] on a type literal for a typedef | 3544 /// Postfix expression with [operator] on a type literal for a typedef |
| 3326 /// [element]. | 3545 /// [element]. |
| 3327 /// | 3546 /// |
| 3328 /// For instance: | 3547 /// For instance: |
| 3548 /// |
| 3329 /// typedef F(); | 3549 /// typedef F(); |
| 3330 /// m() => F++; | 3550 /// m() => F++; |
| 3331 /// | 3551 /// |
| 3332 R visitTypedefTypeLiteralPostfix( | 3552 R visitTypedefTypeLiteralPostfix( |
| 3333 Send node, | 3553 Send node, |
| 3334 ConstantExpression constant, | 3554 ConstantExpression constant, |
| 3335 IncDecOperator operator, | 3555 IncDecOperator operator, |
| 3336 A arg); | 3556 A arg); |
| 3337 | 3557 |
| 3338 /// Postfix expression with [operator] on a type literal for a type variable | 3558 /// Postfix expression with [operator] on a type literal for a type variable |
| 3339 /// [element]. | 3559 /// [element]. |
| 3340 /// | 3560 /// |
| 3341 /// For instance: | 3561 /// For instance: |
| 3562 /// |
| 3342 /// class C<T> { | 3563 /// class C<T> { |
| 3343 /// m() => T++; | 3564 /// m() => T++; |
| 3344 /// } | 3565 /// } |
| 3345 /// | 3566 /// |
| 3346 R visitTypeVariableTypeLiteralPostfix( | 3567 R visitTypeVariableTypeLiteralPostfix( |
| 3347 Send node, | 3568 Send node, |
| 3348 TypeVariableElement element, | 3569 TypeVariableElement element, |
| 3349 IncDecOperator operator, | 3570 IncDecOperator operator, |
| 3350 A arg); | 3571 A arg); |
| 3351 | 3572 |
| 3352 /// Postfix expression with [operator] on the type literal for `dynamic`. | 3573 /// Postfix expression with [operator] on the type literal for `dynamic`. |
| 3353 /// | 3574 /// |
| 3354 /// For instance: | 3575 /// For instance: |
| 3576 /// |
| 3355 /// m() => dynamic++; | 3577 /// m() => dynamic++; |
| 3356 /// | 3578 /// |
| 3357 R visitDynamicTypeLiteralPostfix( | 3579 R visitDynamicTypeLiteralPostfix( |
| 3358 Send node, | 3580 Send node, |
| 3359 ConstantExpression constant, | 3581 ConstantExpression constant, |
| 3360 IncDecOperator operator, | 3582 IncDecOperator operator, |
| 3361 A arg); | 3583 A arg); |
| 3362 | 3584 |
| 3363 /// Read of the [constant]. | 3585 /// Read of the [constant]. |
| 3364 /// | 3586 /// |
| 3365 /// For instance | 3587 /// For instance: |
| 3588 /// |
| 3366 /// const c = c; | 3589 /// const c = c; |
| 3367 /// m() => c; | 3590 /// m() => c; |
| 3368 /// | 3591 /// |
| 3369 R visitConstantGet( | 3592 R visitConstantGet( |
| 3370 Send node, | 3593 Send node, |
| 3371 ConstantExpression constant, | 3594 ConstantExpression constant, |
| 3372 A arg); | 3595 A arg); |
| 3373 | 3596 |
| 3374 /// Invocation of the [constant] with [arguments]. | 3597 /// Invocation of the [constant] with [arguments]. |
| 3375 /// | 3598 /// |
| 3376 /// For instance | 3599 /// For instance: |
| 3600 /// |
| 3377 /// const c = null; | 3601 /// const c = null; |
| 3378 /// m() => c(null, 42); | 3602 /// m() => c(null, 42); |
| 3379 /// | 3603 /// |
| 3380 R visitConstantInvoke( | 3604 R visitConstantInvoke( |
| 3381 Send node, | 3605 Send node, |
| 3382 ConstantExpression constant, | 3606 ConstantExpression constant, |
| 3383 NodeList arguments, | 3607 NodeList arguments, |
| 3384 CallStructure callStreucture, | 3608 CallStructure callStreucture, |
| 3385 A arg); | 3609 A arg); |
| 3386 | 3610 |
| 3387 /// Read of the unresolved [element]. | 3611 /// Read of the unresolved [element]. |
| 3388 /// | 3612 /// |
| 3389 /// For instance | 3613 /// For instance: |
| 3614 /// |
| 3390 /// class C {} | 3615 /// class C {} |
| 3391 /// m1() => unresolved; | 3616 /// m1() => unresolved; |
| 3392 /// m2() => prefix.unresolved; | 3617 /// m2() => prefix.unresolved; |
| 3393 /// m3() => Unresolved.foo; | 3618 /// m3() => Unresolved.foo; |
| 3394 /// m4() => unresolved.foo; | 3619 /// m4() => unresolved.foo; |
| 3395 /// m5() => unresolved.Foo.bar; | 3620 /// m5() => unresolved.Foo.bar; |
| 3396 /// m6() => C.unresolved; | 3621 /// m6() => C.unresolved; |
| 3397 /// m7() => prefix.C.unresolved; | 3622 /// m7() => prefix.C.unresolved; |
| 3398 /// m8() => prefix?.unresolved; | 3623 /// m8() => prefix?.unresolved; |
| 3399 /// m9() => Unresolved?.foo; | 3624 /// m9() => Unresolved?.foo; |
| 3400 /// m10() => unresolved?.foo; | 3625 /// m10() => unresolved?.foo; |
| 3401 /// m11() => unresolved?.Foo?.bar; | 3626 /// m11() => unresolved?.Foo?.bar; |
| 3402 /// | 3627 /// |
| 3403 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3628 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3404 R visitUnresolvedGet( | 3629 R visitUnresolvedGet( |
| 3405 Send node, | 3630 Send node, |
| 3406 Element element, | 3631 Element element, |
| 3407 A arg); | 3632 A arg); |
| 3408 | 3633 |
| 3409 /// Read of the unresolved super [element]. | 3634 /// Read of the unresolved super [element]. |
| 3410 /// | 3635 /// |
| 3411 /// For instance | 3636 /// For instance: |
| 3637 /// |
| 3412 /// class B {} | 3638 /// class B {} |
| 3413 /// class C { | 3639 /// class C { |
| 3414 /// m() => super.foo; | 3640 /// m() => super.foo; |
| 3415 /// } | 3641 /// } |
| 3416 /// | 3642 /// |
| 3417 R visitUnresolvedSuperGet( | 3643 R visitUnresolvedSuperGet( |
| 3418 Send node, | 3644 Send node, |
| 3419 Element element, | 3645 Element element, |
| 3420 A arg); | 3646 A arg); |
| 3421 | 3647 |
| 3422 /// Assignment of [rhs] to the unresolved [element]. | 3648 /// Assignment of [rhs] to the unresolved [element]. |
| 3423 /// | 3649 /// |
| 3424 /// For instance | 3650 /// For instance: |
| 3651 /// |
| 3425 /// class C {} | 3652 /// class C {} |
| 3426 /// m1() => unresolved = 42; | 3653 /// m1() => unresolved = 42; |
| 3427 /// m2() => prefix.unresolved = 42; | 3654 /// m2() => prefix.unresolved = 42; |
| 3428 /// m3() => Unresolved.foo = 42; | 3655 /// m3() => Unresolved.foo = 42; |
| 3429 /// m4() => unresolved.foo = 42; | 3656 /// m4() => unresolved.foo = 42; |
| 3430 /// m5() => unresolved.Foo.bar = 42; | 3657 /// m5() => unresolved.Foo.bar = 42; |
| 3431 /// m6() => C.unresolved = 42; | 3658 /// m6() => C.unresolved = 42; |
| 3432 /// m7() => prefix.C.unresolved = 42; | 3659 /// m7() => prefix.C.unresolved = 42; |
| 3433 /// m8() => prefix?.unresolved = 42; | 3660 /// m8() => prefix?.unresolved = 42; |
| 3434 /// m9() => Unresolved?.foo = 42; | 3661 /// m9() => Unresolved?.foo = 42; |
| 3435 /// m10() => unresolved?.foo = 42; | 3662 /// m10() => unresolved?.foo = 42; |
| 3436 /// m11() => unresolved?.Foo?.bar = 42; | 3663 /// m11() => unresolved?.Foo?.bar = 42; |
| 3437 /// | 3664 /// |
| 3438 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3665 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3439 R visitUnresolvedSet( | 3666 R visitUnresolvedSet( |
| 3440 Send node, | 3667 Send node, |
| 3441 Element element, | 3668 Element element, |
| 3442 Node rhs, | 3669 Node rhs, |
| 3443 A arg); | 3670 A arg); |
| 3444 | 3671 |
| 3445 /// Invocation of the unresolved [element] with [arguments]. | 3672 /// Invocation of the unresolved [element] with [arguments]. |
| 3446 /// | 3673 /// |
| 3447 /// For instance | 3674 /// For instance: |
| 3675 /// |
| 3448 /// class C {} | 3676 /// class C {} |
| 3449 /// m1() => unresolved(null, 42); | 3677 /// m1() => unresolved(null, 42); |
| 3450 /// m2() => prefix.unresolved(null, 42); | 3678 /// m2() => prefix.unresolved(null, 42); |
| 3451 /// m3() => Unresolved.foo(null, 42); | 3679 /// m3() => Unresolved.foo(null, 42); |
| 3452 /// m4() => unresolved.foo(null, 42); | 3680 /// m4() => unresolved.foo(null, 42); |
| 3453 /// m5() => unresolved.Foo.bar(null, 42); | 3681 /// m5() => unresolved.Foo.bar(null, 42); |
| 3454 /// m6() => C.unresolved(null, 42); | 3682 /// m6() => C.unresolved(null, 42); |
| 3455 /// m7() => prefix.C.unresolved(null, 42); | 3683 /// m7() => prefix.C.unresolved(null, 42); |
| 3456 /// m8() => prefix?.unresolved(null, 42); | 3684 /// m8() => prefix?.unresolved(null, 42); |
| 3457 /// m9() => Unresolved?.foo(null, 42); | 3685 /// m9() => Unresolved?.foo(null, 42); |
| 3458 /// m10() => unresolved?.foo(null, 42); | 3686 /// m10() => unresolved?.foo(null, 42); |
| 3459 /// m11() => unresolved?.Foo?.bar(null, 42); | 3687 /// m11() => unresolved?.Foo?.bar(null, 42); |
| 3460 /// | 3688 /// |
| 3461 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3689 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3462 R visitUnresolvedInvoke( | 3690 R visitUnresolvedInvoke( |
| 3463 Send node, | 3691 Send node, |
| 3464 Element element, | 3692 Element element, |
| 3465 NodeList arguments, | 3693 NodeList arguments, |
| 3466 Selector selector, | 3694 Selector selector, |
| 3467 A arg); | 3695 A arg); |
| 3468 | 3696 |
| 3469 /// Invocation of the unresolved super [element] with [arguments]. | 3697 /// Invocation of the unresolved super [element] with [arguments]. |
| 3470 /// | 3698 /// |
| 3471 /// For instance | 3699 /// For instance: |
| 3700 /// |
| 3472 /// class B {} | 3701 /// class B {} |
| 3473 /// class C extends B { | 3702 /// class C extends B { |
| 3474 /// m() => super.foo(); | 3703 /// m() => super.foo(); |
| 3475 /// } | 3704 /// } |
| 3476 /// | 3705 /// |
| 3477 R visitUnresolvedSuperInvoke( | 3706 R visitUnresolvedSuperInvoke( |
| 3478 Send node, | 3707 Send node, |
| 3479 Element element, | 3708 Element element, |
| 3480 NodeList arguments, | 3709 NodeList arguments, |
| 3481 Selector selector, | 3710 Selector selector, |
| 3482 A arg); | 3711 A arg); |
| 3483 | 3712 |
| 3484 /// Compound assignment of [rhs] with [operator] reading from the | 3713 /// Compound assignment of [rhs] with [operator] reading from the |
| 3485 /// non-existing static getter and writing to the static [setter]. | 3714 /// non-existing static getter and writing to the static [setter]. |
| 3486 /// | 3715 /// |
| 3487 /// For instance | 3716 /// For instance: |
| 3717 /// |
| 3488 /// class C { | 3718 /// class C { |
| 3489 /// set foo(_) {} | 3719 /// set foo(_) {} |
| 3490 /// } | 3720 /// } |
| 3491 /// m1() => C.foo += 42; | 3721 /// m1() => C.foo += 42; |
| 3492 /// | 3722 /// |
| 3493 R visitUnresolvedStaticGetterCompound( | 3723 R visitUnresolvedStaticGetterCompound( |
| 3494 Send node, | 3724 Send node, |
| 3495 Element element, | 3725 Element element, |
| 3496 MethodElement setter, | 3726 MethodElement setter, |
| 3497 AssignmentOperator operator, | 3727 AssignmentOperator operator, |
| 3498 Node rhs, | 3728 Node rhs, |
| 3499 A arg); | 3729 A arg); |
| 3500 | 3730 |
| 3501 /// Compound assignment of [rhs] with [operator] reading from the | 3731 /// Compound assignment of [rhs] with [operator] reading from the |
| 3502 /// non-existing top level getter and writing to the top level [setter]. | 3732 /// non-existing top level getter and writing to the top level [setter]. |
| 3503 /// | 3733 /// |
| 3504 /// For instance | 3734 /// For instance: |
| 3735 /// |
| 3505 /// set foo(_) {} | 3736 /// set foo(_) {} |
| 3506 /// m1() => foo += 42; | 3737 /// m1() => foo += 42; |
| 3507 /// | 3738 /// |
| 3508 R visitUnresolvedTopLevelGetterCompound( | 3739 R visitUnresolvedTopLevelGetterCompound( |
| 3509 Send node, | 3740 Send node, |
| 3510 Element element, | 3741 Element element, |
| 3511 MethodElement setter, | 3742 MethodElement setter, |
| 3512 AssignmentOperator operator, | 3743 AssignmentOperator operator, |
| 3513 Node rhs, | 3744 Node rhs, |
| 3514 A arg); | 3745 A arg); |
| 3515 | 3746 |
| 3516 /// Compound assignment of [rhs] with [operator] reading from the static | 3747 /// Compound assignment of [rhs] with [operator] reading from the static |
| 3517 /// [getter] and writing to the non-existing static setter. | 3748 /// [getter] and writing to the non-existing static setter. |
| 3518 /// | 3749 /// |
| 3519 /// For instance | 3750 /// For instance: |
| 3751 /// |
| 3520 /// class C { | 3752 /// class C { |
| 3521 /// get foo => 42; | 3753 /// get foo => 42; |
| 3522 /// } | 3754 /// } |
| 3523 /// m1() => C.foo += 42; | 3755 /// m1() => C.foo += 42; |
| 3524 /// | 3756 /// |
| 3525 R visitUnresolvedStaticSetterCompound( | 3757 R visitUnresolvedStaticSetterCompound( |
| 3526 Send node, | 3758 Send node, |
| 3527 MethodElement getter, | 3759 MethodElement getter, |
| 3528 Element element, | 3760 Element element, |
| 3529 AssignmentOperator operator, | 3761 AssignmentOperator operator, |
| 3530 Node rhs, | 3762 Node rhs, |
| 3531 A arg); | 3763 A arg); |
| 3532 | 3764 |
| 3533 /// Compound assignment of [rhs] with [operator] reading from the top level | 3765 /// Compound assignment of [rhs] with [operator] reading from the top level |
| 3534 /// [getter] and writing to the non-existing top level setter. | 3766 /// [getter] and writing to the non-existing top level setter. |
| 3535 /// | 3767 /// |
| 3536 /// For instance | 3768 /// For instance: |
| 3769 /// |
| 3537 /// get foo => 42; | 3770 /// get foo => 42; |
| 3538 /// m1() => foo += 42; | 3771 /// m1() => foo += 42; |
| 3539 /// | 3772 /// |
| 3540 R visitUnresolvedTopLevelSetterCompound( | 3773 R visitUnresolvedTopLevelSetterCompound( |
| 3541 Send node, | 3774 Send node, |
| 3542 MethodElement getter, | 3775 MethodElement getter, |
| 3543 Element element, | 3776 Element element, |
| 3544 AssignmentOperator operator, | 3777 AssignmentOperator operator, |
| 3545 Node rhs, | 3778 Node rhs, |
| 3546 A arg); | 3779 A arg); |
| 3547 | 3780 |
| 3548 /// Compound assignment of [rhs] with [operator] reading the closurized static | 3781 /// Compound assignment of [rhs] with [operator] reading the closurized static |
| 3549 /// [method] and trying to invoke the non-existing setter. | 3782 /// [method] and trying to invoke the non-existing setter. |
| 3550 /// | 3783 /// |
| 3551 /// For instance | 3784 /// For instance: |
| 3785 /// |
| 3552 /// class C { | 3786 /// class C { |
| 3553 /// foo() {} | 3787 /// foo() {} |
| 3554 /// } | 3788 /// } |
| 3555 /// m1() => C.foo += 42; | 3789 /// m1() => C.foo += 42; |
| 3556 /// | 3790 /// |
| 3557 R visitStaticMethodCompound( | 3791 R visitStaticMethodCompound( |
| 3558 Send node, | 3792 Send node, |
| 3559 MethodElement method, | 3793 MethodElement method, |
| 3560 AssignmentOperator operator, | 3794 AssignmentOperator operator, |
| 3561 Node rhs, | 3795 Node rhs, |
| 3562 A arg); | 3796 A arg); |
| 3563 | 3797 |
| 3564 /// Compound assignment of [rhs] where both getter and setter are unresolved. | 3798 /// Compound assignment of [rhs] where both getter and setter are unresolved. |
| 3565 /// | 3799 /// |
| 3566 /// For instance | 3800 /// For instance: |
| 3801 /// |
| 3567 /// class C {} | 3802 /// class C {} |
| 3568 /// m1() => unresolved += 42; | 3803 /// m1() => unresolved += 42; |
| 3569 /// m2() => prefix.unresolved += 42; | 3804 /// m2() => prefix.unresolved += 42; |
| 3570 /// m3() => Unresolved.foo += 42; | 3805 /// m3() => Unresolved.foo += 42; |
| 3571 /// m4() => unresolved.foo += 42; | 3806 /// m4() => unresolved.foo += 42; |
| 3572 /// m5() => unresolved.Foo.bar += 42; | 3807 /// m5() => unresolved.Foo.bar += 42; |
| 3573 /// m6() => C.unresolved += 42; | 3808 /// m6() => C.unresolved += 42; |
| 3574 /// m7() => prefix.C.unresolved += 42; | 3809 /// m7() => prefix.C.unresolved += 42; |
| 3575 /// m8() => prefix?.unresolved += 42; | 3810 /// m8() => prefix?.unresolved += 42; |
| 3576 /// m9() => Unresolved?.foo += 42; | 3811 /// m9() => Unresolved?.foo += 42; |
| 3577 /// m10() => unresolved?.foo += 42; | 3812 /// m10() => unresolved?.foo += 42; |
| 3578 /// m11() => unresolved?.Foo?.bar += 42; | 3813 /// m11() => unresolved?.Foo?.bar += 42; |
| 3579 /// | 3814 /// |
| 3580 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3815 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3581 R visitUnresolvedCompound( | 3816 R visitUnresolvedCompound( |
| 3582 Send node, | 3817 Send node, |
| 3583 Element element, | 3818 Element element, |
| 3584 AssignmentOperator operator, | 3819 AssignmentOperator operator, |
| 3585 Node rhs, | 3820 Node rhs, |
| 3586 A arg); | 3821 A arg); |
| 3587 | 3822 |
| 3588 /// Prefix operation of [operator] reading from the non-existing static getter | 3823 /// Prefix operation of [operator] reading from the non-existing static getter |
| 3589 /// and writing to the static [setter]. | 3824 /// and writing to the static [setter]. |
| 3590 /// | 3825 /// |
| 3591 /// For instance | 3826 /// For instance: |
| 3827 /// |
| 3592 /// class C { | 3828 /// class C { |
| 3593 /// set foo(_) {} | 3829 /// set foo(_) {} |
| 3594 /// } | 3830 /// } |
| 3595 /// m1() => ++C.foo; | 3831 /// m1() => ++C.foo; |
| 3596 /// | 3832 /// |
| 3597 R visitUnresolvedStaticGetterPrefix( | 3833 R visitUnresolvedStaticGetterPrefix( |
| 3598 Send node, | 3834 Send node, |
| 3599 Element element, | 3835 Element element, |
| 3600 MethodElement setter, | 3836 MethodElement setter, |
| 3601 IncDecOperator operator, | 3837 IncDecOperator operator, |
| 3602 A arg); | 3838 A arg); |
| 3603 | 3839 |
| 3604 /// Prefix operation of [operator] reading from the non-existing top level | 3840 /// Prefix operation of [operator] reading from the non-existing top level |
| 3605 /// getter and writing to the top level [setter]. | 3841 /// getter and writing to the top level [setter]. |
| 3606 /// | 3842 /// |
| 3607 /// For instance | 3843 /// For instance: |
| 3844 /// |
| 3608 /// set foo(_) {} | 3845 /// set foo(_) {} |
| 3609 /// m1() => ++foo; | 3846 /// m1() => ++foo; |
| 3610 /// | 3847 /// |
| 3611 R visitUnresolvedTopLevelGetterPrefix( | 3848 R visitUnresolvedTopLevelGetterPrefix( |
| 3612 Send node, | 3849 Send node, |
| 3613 Element element, | 3850 Element element, |
| 3614 MethodElement setter, | 3851 MethodElement setter, |
| 3615 IncDecOperator operator, | 3852 IncDecOperator operator, |
| 3616 A arg); | 3853 A arg); |
| 3617 | 3854 |
| 3618 /// Prefix operation of [operator] reading from the static [getter] and | 3855 /// Prefix operation of [operator] reading from the static [getter] and |
| 3619 /// writing to the non-existing static setter. | 3856 /// writing to the non-existing static setter. |
| 3620 /// | 3857 /// |
| 3621 /// For instance | 3858 /// For instance: |
| 3859 /// |
| 3622 /// class C { | 3860 /// class C { |
| 3623 /// get foo => 42; | 3861 /// get foo => 42; |
| 3624 /// } | 3862 /// } |
| 3625 /// m1() => ++C.foo; | 3863 /// m1() => ++C.foo; |
| 3626 /// | 3864 /// |
| 3627 R visitUnresolvedStaticSetterPrefix( | 3865 R visitUnresolvedStaticSetterPrefix( |
| 3628 Send node, | 3866 Send node, |
| 3629 MethodElement getter, | 3867 MethodElement getter, |
| 3630 Element element, | 3868 Element element, |
| 3631 IncDecOperator operator, | 3869 IncDecOperator operator, |
| 3632 A arg); | 3870 A arg); |
| 3633 | 3871 |
| 3634 /// Postfix operation of [operator] reading from the top level [getter] and | 3872 /// Postfix operation of [operator] reading from the top level [getter] and |
| 3635 /// writing to the non-existing top level setter. | 3873 /// writing to the non-existing top level setter. |
| 3636 /// | 3874 /// |
| 3637 /// For instance | 3875 /// For instance: |
| 3876 /// |
| 3638 /// get foo => 42; | 3877 /// get foo => 42; |
| 3639 /// m1() => ++foo; | 3878 /// m1() => ++foo; |
| 3640 /// | 3879 /// |
| 3641 R visitUnresolvedTopLevelSetterPrefix( | 3880 R visitUnresolvedTopLevelSetterPrefix( |
| 3642 Send node, | 3881 Send node, |
| 3643 MethodElement getter, | 3882 MethodElement getter, |
| 3644 Element element, | 3883 Element element, |
| 3645 IncDecOperator operator, | 3884 IncDecOperator operator, |
| 3646 A arg); | 3885 A arg); |
| 3647 | 3886 |
| 3648 /// Prefix operation of [operator] reading the closurized static [method] and | 3887 /// Prefix operation of [operator] reading the closurized static [method] and |
| 3649 /// trying to invoke the non-existing setter. | 3888 /// trying to invoke the non-existing setter. |
| 3650 /// | 3889 /// |
| 3651 /// For instance | 3890 /// For instance: |
| 3891 /// |
| 3652 /// class C { | 3892 /// class C { |
| 3653 /// foo() {} | 3893 /// foo() {} |
| 3654 /// } | 3894 /// } |
| 3655 /// m1() => ++C.foo; | 3895 /// m1() => ++C.foo; |
| 3656 /// | 3896 /// |
| 3657 R visitStaticMethodPrefix( | 3897 R visitStaticMethodPrefix( |
| 3658 Send node, | 3898 Send node, |
| 3659 MethodElement method, | 3899 MethodElement method, |
| 3660 IncDecOperator operator, | 3900 IncDecOperator operator, |
| 3661 A arg); | 3901 A arg); |
| 3662 | 3902 |
| 3663 /// Prefix operation of [operator] reading the closurized top level [method] | 3903 /// Prefix operation of [operator] reading the closurized top level [method] |
| 3664 /// and trying to invoke the non-existing setter. | 3904 /// and trying to invoke the non-existing setter. |
| 3665 /// | 3905 /// |
| 3666 /// For instance | 3906 /// For instance: |
| 3907 /// |
| 3667 /// class C { | 3908 /// class C { |
| 3668 /// foo() {} | 3909 /// foo() {} |
| 3669 /// } | 3910 /// } |
| 3670 /// m1() => ++C.foo; | 3911 /// m1() => ++C.foo; |
| 3671 /// | 3912 /// |
| 3672 R visitTopLevelMethodPrefix( | 3913 R visitTopLevelMethodPrefix( |
| 3673 Send node, | 3914 Send node, |
| 3674 MethodElement method, | 3915 MethodElement method, |
| 3675 IncDecOperator operator, | 3916 IncDecOperator operator, |
| 3676 A arg); | 3917 A arg); |
| 3677 | 3918 |
| 3678 /// Prefix operation where both getter and setter are unresolved. | 3919 /// Prefix operation where both getter and setter are unresolved. |
| 3679 /// | 3920 /// |
| 3680 /// For instance | 3921 /// For instance: |
| 3922 /// |
| 3681 /// class C {} | 3923 /// class C {} |
| 3682 /// m1() => ++unresolved; | 3924 /// m1() => ++unresolved; |
| 3683 /// m2() => ++prefix.unresolved; | 3925 /// m2() => ++prefix.unresolved; |
| 3684 /// m3() => ++Unresolved.foo; | 3926 /// m3() => ++Unresolved.foo; |
| 3685 /// m4() => ++unresolved.foo; | 3927 /// m4() => ++unresolved.foo; |
| 3686 /// m5() => ++unresolved.Foo.bar; | 3928 /// m5() => ++unresolved.Foo.bar; |
| 3687 /// m6() => ++C.unresolved; | 3929 /// m6() => ++C.unresolved; |
| 3688 /// m7() => ++prefix.C.unresolved; | 3930 /// m7() => ++prefix.C.unresolved; |
| 3689 /// m8() => ++prefix?.unresolved; | 3931 /// m8() => ++prefix?.unresolved; |
| 3690 /// m9() => ++Unresolved?.foo; | 3932 /// m9() => ++Unresolved?.foo; |
| 3691 /// m10() => ++unresolved?.foo; | 3933 /// m10() => ++unresolved?.foo; |
| 3692 /// m11() => ++unresolved?.Foo?.bar; | 3934 /// m11() => ++unresolved?.Foo?.bar; |
| 3693 /// | 3935 /// |
| 3694 // TODO(johnniwinther): Split the cases in which a prefix is resolved. | 3936 // TODO(johnniwinther): Split the cases in which a prefix is resolved. |
| 3695 R visitUnresolvedPrefix( | 3937 R visitUnresolvedPrefix( |
| 3696 Send node, | 3938 Send node, |
| 3697 Element element, | 3939 Element element, |
| 3698 IncDecOperator operator, | 3940 IncDecOperator operator, |
| 3699 A arg); | 3941 A arg); |
| 3700 | 3942 |
| 3701 /// Postfix operation of [operator] reading from the non-existing static | 3943 /// Postfix operation of [operator] reading from the non-existing static |
| 3702 /// getter and writing to the static [setter]. | 3944 /// getter and writing to the static [setter]. |
| 3703 /// | 3945 /// |
| 3704 /// For instance | 3946 /// For instance: |
| 3947 /// |
| 3705 /// class C { | 3948 /// class C { |
| 3706 /// set foo(_) {} | 3949 /// set foo(_) {} |
| 3707 /// } | 3950 /// } |
| 3708 /// m1() => C.foo++; | 3951 /// m1() => C.foo++; |
| 3709 /// | 3952 /// |
| 3710 R visitUnresolvedStaticGetterPostfix( | 3953 R visitUnresolvedStaticGetterPostfix( |
| 3711 Send node, | 3954 Send node, |
| 3712 Element element, | 3955 Element element, |
| 3713 MethodElement setter, | 3956 MethodElement setter, |
| 3714 IncDecOperator operator, | 3957 IncDecOperator operator, |
| 3715 A arg); | 3958 A arg); |
| 3716 | 3959 |
| 3717 /// Postfix operation of [operator] reading from the non-existing top level | 3960 /// Postfix operation of [operator] reading from the non-existing top level |
| 3718 /// getter and writing to the top level [setter]. | 3961 /// getter and writing to the top level [setter]. |
| 3719 /// | 3962 /// |
| 3720 /// For instance | 3963 /// For instance: |
| 3964 /// |
| 3721 /// set foo(_) {} | 3965 /// set foo(_) {} |
| 3722 /// m1() => foo++; | 3966 /// m1() => foo++; |
| 3723 /// | 3967 /// |
| 3724 R visitUnresolvedTopLevelGetterPostfix( | 3968 R visitUnresolvedTopLevelGetterPostfix( |
| 3725 Send node, | 3969 Send node, |
| 3726 Element element, | 3970 Element element, |
| 3727 MethodElement setter, | 3971 MethodElement setter, |
| 3728 IncDecOperator operator, | 3972 IncDecOperator operator, |
| 3729 A arg); | 3973 A arg); |
| 3730 | 3974 |
| 3731 /// Postfix operation of [operator] reading from the static [getter] and | 3975 /// Postfix operation of [operator] reading from the static [getter] and |
| 3732 /// writing to the non-existing static setter. | 3976 /// writing to the non-existing static setter. |
| 3733 /// | 3977 /// |
| 3734 /// For instance | 3978 /// For instance: |
| 3979 /// |
| 3735 /// class C { | 3980 /// class C { |
| 3736 /// get foo => 42; | 3981 /// get foo => 42; |
| 3737 /// } | 3982 /// } |
| 3738 /// m1() => C.foo++; | 3983 /// m1() => C.foo++; |
| 3739 /// | 3984 /// |
| 3740 R visitUnresolvedStaticSetterPostfix( | 3985 R visitUnresolvedStaticSetterPostfix( |
| 3741 Send node, | 3986 Send node, |
| 3742 MethodElement getter, | 3987 MethodElement getter, |
| 3743 Element element, | 3988 Element element, |
| 3744 IncDecOperator operator, | 3989 IncDecOperator operator, |
| 3745 A arg); | 3990 A arg); |
| 3746 | 3991 |
| 3747 /// Postfix operation of [operator] reading from the top level [getter] and | 3992 /// Postfix operation of [operator] reading from the top level [getter] and |
| 3748 /// writing to the non-existing top level setter. | 3993 /// writing to the non-existing top level setter. |
| 3749 /// | 3994 /// |
| 3750 /// For instance | 3995 /// For instance: |
| 3996 /// |
| 3751 /// get foo => 42; | 3997 /// get foo => 42; |
| 3752 /// m1() => foo++; | 3998 /// m1() => foo++; |
| 3753 /// | 3999 /// |
| 3754 R visitUnresolvedTopLevelSetterPostfix( | 4000 R visitUnresolvedTopLevelSetterPostfix( |
| 3755 Send node, | 4001 Send node, |
| 3756 MethodElement getter, | 4002 MethodElement getter, |
| 3757 Element element, | 4003 Element element, |
| 3758 IncDecOperator operator, | 4004 IncDecOperator operator, |
| 3759 A arg); | 4005 A arg); |
| 3760 | 4006 |
| 3761 /// Postfix operation of [operator] reading the closurized static [method] and | 4007 /// Postfix operation of [operator] reading the closurized static [method] and |
| 3762 /// trying to invoke the non-existing setter. | 4008 /// trying to invoke the non-existing setter. |
| 3763 /// | 4009 /// |
| 3764 /// For instance | 4010 /// For instance: |
| 4011 /// |
| 3765 /// class C { | 4012 /// class C { |
| 3766 /// foo() {} | 4013 /// foo() {} |
| 3767 /// } | 4014 /// } |
| 3768 /// m1() => C.foo++; | 4015 /// m1() => C.foo++; |
| 3769 /// | 4016 /// |
| 3770 R visitStaticMethodPostfix( | 4017 R visitStaticMethodPostfix( |
| 3771 Send node, | 4018 Send node, |
| 3772 MethodElement method, | 4019 MethodElement method, |
| 3773 IncDecOperator operator, | 4020 IncDecOperator operator, |
| 3774 A arg); | 4021 A arg); |
| 3775 | 4022 |
| 3776 /// Postfix operation of [operator] reading the closurized top level [method] | 4023 /// Postfix operation of [operator] reading the closurized top level [method] |
| 3777 /// and trying to invoke the non-existing setter. | 4024 /// and trying to invoke the non-existing setter. |
| 3778 /// | 4025 /// |
| 3779 /// For instance | 4026 /// For instance: |
| 4027 /// |
| 3780 /// class C { | 4028 /// class C { |
| 3781 /// foo() {} | 4029 /// foo() {} |
| 3782 /// } | 4030 /// } |
| 3783 /// m1() => C.foo++; | 4031 /// m1() => C.foo++; |
| 3784 /// | 4032 /// |
| 3785 R visitTopLevelMethodPostfix( | 4033 R visitTopLevelMethodPostfix( |
| 3786 Send node, | 4034 Send node, |
| 3787 MethodElement method, | 4035 MethodElement method, |
| 3788 IncDecOperator operator, | 4036 IncDecOperator operator, |
| 3789 A arg); | 4037 A arg); |
| 3790 | 4038 |
| 3791 /// Postfix operation where both getter and setter are unresolved. | 4039 /// Postfix operation where both getter and setter are unresolved. |
| 3792 /// | 4040 /// |
| 3793 /// For instance | 4041 /// For instance: |
| 4042 /// |
| 3794 /// class C {} | 4043 /// class C {} |
| 3795 /// m1() => unresolved++; | 4044 /// m1() => unresolved++; |
| 3796 /// m2() => prefix.unresolved++; | 4045 /// m2() => prefix.unresolved++; |
| 3797 /// m3() => Unresolved.foo++; | 4046 /// m3() => Unresolved.foo++; |
| 3798 /// m4() => unresolved.foo++; | 4047 /// m4() => unresolved.foo++; |
| 3799 /// m5() => unresolved.Foo.bar++; | 4048 /// m5() => unresolved.Foo.bar++; |
| 3800 /// m6() => C.unresolved++; | 4049 /// m6() => C.unresolved++; |
| 3801 /// m7() => prefix.C.unresolved++; | 4050 /// m7() => prefix.C.unresolved++; |
| 3802 /// m8() => prefix?.unresolved++; | 4051 /// m8() => prefix?.unresolved++; |
| 3803 /// m9() => Unresolved?.foo++; | 4052 /// m9() => Unresolved?.foo++; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 3822 /// [left] and [right]. | 4071 /// [left] and [right]. |
| 3823 R errorUndefinedBinaryExpression( | 4072 R errorUndefinedBinaryExpression( |
| 3824 Send node, | 4073 Send node, |
| 3825 Node left, | 4074 Node left, |
| 3826 Operator operator, | 4075 Operator operator, |
| 3827 Node right, | 4076 Node right, |
| 3828 A arg); | 4077 A arg); |
| 3829 | 4078 |
| 3830 /// Const invocation of a [constant] constructor. | 4079 /// Const invocation of a [constant] constructor. |
| 3831 /// | 4080 /// |
| 3832 /// For instance | 4081 /// For instance: |
| 3833 /// class C<T> { | 4082 /// |
| 3834 /// const C(a, b); | 4083 /// class C<T> { |
| 3835 /// } | 4084 /// const C(a, b); |
| 3836 /// m() => const C<int>(true, 42); | 4085 /// } |
| 4086 /// m() => const C<int>(true, 42); |
| 3837 /// | 4087 /// |
| 3838 R visitConstConstructorInvoke( | 4088 R visitConstConstructorInvoke( |
| 3839 NewExpression node, | 4089 NewExpression node, |
| 3840 ConstructedConstantExpression constant, | 4090 ConstructedConstantExpression constant, |
| 3841 A arg); | 4091 A arg); |
| 3842 | 4092 |
| 3843 /// Const invocation of the `bool.fromEnvironment` constructor. | 4093 /// Const invocation of the `bool.fromEnvironment` constructor. |
| 3844 /// | 4094 /// |
| 3845 /// For instance | 4095 /// For instance: |
| 3846 /// m() => const bool.fromEnvironment('foo', defaultValue: false); | 4096 /// |
| 4097 /// m() => const bool.fromEnvironment('foo', defaultValue: false); |
| 3847 /// | 4098 /// |
| 3848 R visitBoolFromEnvironmentConstructorInvoke( | 4099 R visitBoolFromEnvironmentConstructorInvoke( |
| 3849 NewExpression node, | 4100 NewExpression node, |
| 3850 BoolFromEnvironmentConstantExpression constant, | 4101 BoolFromEnvironmentConstantExpression constant, |
| 3851 A arg); | 4102 A arg); |
| 3852 | 4103 |
| 3853 /// Const invocation of the `int.fromEnvironment` constructor. | 4104 /// Const invocation of the `int.fromEnvironment` constructor. |
| 3854 /// | 4105 /// |
| 3855 /// For instance | 4106 /// For instance: |
| 3856 /// m() => const int.fromEnvironment('foo', defaultValue: 42); | 4107 /// |
| 4108 /// m() => const int.fromEnvironment('foo', defaultValue: 42); |
| 3857 /// | 4109 /// |
| 3858 R visitIntFromEnvironmentConstructorInvoke( | 4110 R visitIntFromEnvironmentConstructorInvoke( |
| 3859 NewExpression node, | 4111 NewExpression node, |
| 3860 IntFromEnvironmentConstantExpression constant, | 4112 IntFromEnvironmentConstantExpression constant, |
| 3861 A arg); | 4113 A arg); |
| 3862 | 4114 |
| 3863 /// Const invocation of the `String.fromEnvironment` constructor. | 4115 /// Const invocation of the `String.fromEnvironment` constructor. |
| 3864 /// | 4116 /// |
| 3865 /// For instance | 4117 /// For instance: |
| 3866 /// m() => const String.fromEnvironment('foo', defaultValue: 'bar'); | 4118 /// |
| 4119 /// m() => const String.fromEnvironment('foo', defaultValue: 'bar'); |
| 3867 /// | 4120 /// |
| 3868 R visitStringFromEnvironmentConstructorInvoke( | 4121 R visitStringFromEnvironmentConstructorInvoke( |
| 3869 NewExpression node, | 4122 NewExpression node, |
| 3870 StringFromEnvironmentConstantExpression constant, | 4123 StringFromEnvironmentConstantExpression constant, |
| 3871 A arg); | 4124 A arg); |
| 3872 | 4125 |
| 3873 /// Invocation of a generative [constructor] on [type] with [arguments]. | 4126 /// Invocation of a generative [constructor] on [type] with [arguments]. |
| 3874 /// | 4127 /// |
| 3875 /// For instance | 4128 /// For instance: |
| 3876 /// class C<T> { | 4129 /// |
| 3877 /// C(a, b); | 4130 /// class C<T> { |
| 3878 /// } | 4131 /// C(a, b); |
| 3879 /// m() => new C<int>(true, 42); | 4132 /// } |
| 4133 /// m() => new C<int>(true, 42); |
| 3880 /// | 4134 /// |
| 3881 /// where [type] is `C<int>`. | 4135 /// where [type] is `C<int>`. |
| 3882 /// | 4136 /// |
| 3883 R visitGenerativeConstructorInvoke( | 4137 R visitGenerativeConstructorInvoke( |
| 3884 NewExpression node, | 4138 NewExpression node, |
| 3885 ConstructorElement constructor, | 4139 ConstructorElement constructor, |
| 3886 InterfaceType type, | 4140 InterfaceType type, |
| 3887 NodeList arguments, | 4141 NodeList arguments, |
| 3888 CallStructure callStructure, | 4142 CallStructure callStructure, |
| 3889 A arg); | 4143 A arg); |
| 3890 | 4144 |
| 3891 /// Invocation of a redirecting generative [constructor] on [type] with | 4145 /// Invocation of a redirecting generative [constructor] on [type] with |
| 3892 /// [arguments]. | 4146 /// [arguments]. |
| 3893 /// | 4147 /// |
| 3894 /// For instance | 4148 /// For instance: |
| 3895 /// class C<T> { | 4149 /// |
| 3896 /// C(a, b) : this._(b, a); | 4150 /// class C<T> { |
| 3897 /// C._(b, a); | 4151 /// C(a, b) : this._(b, a); |
| 3898 /// } | 4152 /// C._(b, a); |
| 3899 /// m() => new C<int>(true, 42); | 4153 /// } |
| 4154 /// m() => new C<int>(true, 42); |
| 3900 /// | 4155 /// |
| 3901 /// where [type] is `C<int>`. | 4156 /// where [type] is `C<int>`. |
| 3902 /// | 4157 /// |
| 3903 R visitRedirectingGenerativeConstructorInvoke( | 4158 R visitRedirectingGenerativeConstructorInvoke( |
| 3904 NewExpression node, | 4159 NewExpression node, |
| 3905 ConstructorElement constructor, | 4160 ConstructorElement constructor, |
| 3906 InterfaceType type, | 4161 InterfaceType type, |
| 3907 NodeList arguments, | 4162 NodeList arguments, |
| 3908 CallStructure callStructure, | 4163 CallStructure callStructure, |
| 3909 A arg); | 4164 A arg); |
| 3910 | 4165 |
| 3911 /// Invocation of a factory [constructor] on [type] with [arguments]. | 4166 /// Invocation of a factory [constructor] on [type] with [arguments]. |
| 3912 /// | 4167 /// |
| 3913 /// For instance | 4168 /// For instance: |
| 3914 /// class C<T> { | 4169 /// |
| 3915 /// factory C(a, b) => new C<T>._(b, a); | 4170 /// class C<T> { |
| 3916 /// C._(b, a); | 4171 /// factory C(a, b) => new C<T>._(b, a); |
| 3917 /// } | 4172 /// C._(b, a); |
| 3918 /// m() => new C<int>(true, 42); | 4173 /// } |
| 4174 /// m() => new C<int>(true, 42); |
| 3919 /// | 4175 /// |
| 3920 /// where [type] is `C<int>`. | 4176 /// where [type] is `C<int>`. |
| 3921 /// | 4177 /// |
| 3922 R visitFactoryConstructorInvoke( | 4178 R visitFactoryConstructorInvoke( |
| 3923 NewExpression node, | 4179 NewExpression node, |
| 3924 ConstructorElement constructor, | 4180 ConstructorElement constructor, |
| 3925 InterfaceType type, | 4181 InterfaceType type, |
| 3926 NodeList arguments, | 4182 NodeList arguments, |
| 3927 CallStructure callStructure, | 4183 CallStructure callStructure, |
| 3928 A arg); | 4184 A arg); |
| 3929 | 4185 |
| 3930 /// Invocation of a factory [constructor] on [type] with [arguments] where | 4186 /// Invocation of a factory [constructor] on [type] with [arguments] where |
| 3931 /// [effectiveTarget] and [effectiveTargetType] are the constructor effective | 4187 /// [effectiveTarget] and [effectiveTargetType] are the constructor effective |
| 3932 /// invoked and its type, respectively. | 4188 /// invoked and its type, respectively. |
| 3933 /// | 4189 /// |
| 3934 /// For instance | 4190 /// For instance: |
| 3935 /// class C<T> { | 4191 /// |
| 3936 /// factory C(a, b) = C<int>.a; | 4192 /// class C<T> { |
| 3937 /// factory C.a(a, b) = C<C<T>>.b; | 4193 /// factory C(a, b) = C<int>.a; |
| 3938 /// C.b(a, b); | 4194 /// factory C.a(a, b) = C<C<T>>.b; |
| 3939 /// } | 4195 /// C.b(a, b); |
| 3940 /// m() => new C<double>(true, 42); | 4196 /// } |
| 4197 /// m() => new C<double>(true, 42); |
| 3941 /// | 4198 /// |
| 3942 /// where [type] is `C<double>`, [effectiveTarget] is `C.b` and | 4199 /// where [type] is `C<double>`, [effectiveTarget] is `C.b` and |
| 3943 /// [effectiveTargetType] is `C<C<int>>`. | 4200 /// [effectiveTargetType] is `C<C<int>>`. |
| 3944 /// | 4201 /// |
| 3945 R visitRedirectingFactoryConstructorInvoke( | 4202 R visitRedirectingFactoryConstructorInvoke( |
| 3946 NewExpression node, | 4203 NewExpression node, |
| 3947 ConstructorElement constructor, | 4204 ConstructorElement constructor, |
| 3948 InterfaceType type, | 4205 InterfaceType type, |
| 3949 ConstructorElement effectiveTarget, | 4206 ConstructorElement effectiveTarget, |
| 3950 InterfaceType effectiveTargetType, | 4207 InterfaceType effectiveTargetType, |
| 3951 NodeList arguments, | 4208 NodeList arguments, |
| 3952 CallStructure callStructure, | 4209 CallStructure callStructure, |
| 3953 A arg); | 4210 A arg); |
| 3954 | 4211 |
| 3955 /// Invocation of an unresolved [constructor] on [type] with [arguments]. | 4212 /// Invocation of an unresolved [constructor] on [type] with [arguments]. |
| 3956 /// | 4213 /// |
| 3957 /// For instance | 4214 /// For instance: |
| 3958 /// class C<T> { | 4215 /// |
| 3959 /// C(); | 4216 /// class C<T> { |
| 3960 /// } | 4217 /// C(); |
| 3961 /// m() => new C<int>.unresolved(true, 42); | 4218 /// } |
| 4219 /// m() => new C<int>.unresolved(true, 42); |
| 3962 /// | 4220 /// |
| 3963 /// where [type] is `C<int>`. | 4221 /// where [type] is `C<int>`. |
| 3964 /// | 4222 /// |
| 3965 // TODO(johnniwinther): Change [type] to [InterfaceType] when is it not | 4223 // TODO(johnniwinther): Change [type] to [InterfaceType] when is it not |
| 3966 // `dynamic`. | 4224 // `dynamic`. |
| 3967 R visitUnresolvedConstructorInvoke( | 4225 R visitUnresolvedConstructorInvoke( |
| 3968 NewExpression node, | 4226 NewExpression node, |
| 3969 Element constructor, | 4227 Element constructor, |
| 3970 DartType type, | 4228 DartType type, |
| 3971 NodeList arguments, | 4229 NodeList arguments, |
| 3972 Selector selector, | 4230 Selector selector, |
| 3973 A arg); | 4231 A arg); |
| 3974 | 4232 |
| 3975 /// Invocation of a constructor on an unresolved [type] with [arguments]. | 4233 /// Invocation of a constructor on an unresolved [type] with [arguments]. |
| 3976 /// | 4234 /// |
| 3977 /// For instance | 4235 /// For instance: |
| 3978 /// m() => new Unresolved(true, 42); | 4236 /// |
| 4237 /// m() => new Unresolved(true, 42); |
| 3979 /// | 4238 /// |
| 3980 /// where [type] is the malformed type `Unresolved`. | 4239 /// where [type] is the malformed type `Unresolved`. |
| 3981 /// | 4240 /// |
| 3982 // TODO(johnniwinther): Change [type] to [MalformedType] when is it not | 4241 // TODO(johnniwinther): Change [type] to [MalformedType] when is it not |
| 3983 // `dynamic`. | 4242 // `dynamic`. |
| 3984 R visitUnresolvedClassConstructorInvoke( | 4243 R visitUnresolvedClassConstructorInvoke( |
| 3985 NewExpression node, | 4244 NewExpression node, |
| 3986 Element element, | 4245 Element element, |
| 3987 DartType type, | 4246 DartType type, |
| 3988 NodeList arguments, | 4247 NodeList arguments, |
| 3989 Selector selector, | 4248 Selector selector, |
| 3990 A arg); | 4249 A arg); |
| 3991 | 4250 |
| 3992 /// Constant invocation of a non-constant constructor. | 4251 /// Constant invocation of a non-constant constructor. |
| 3993 /// | 4252 /// |
| 3994 /// For instance | 4253 /// For instance: |
| 3995 /// class C { | 4254 /// |
| 3996 /// C(a, b); | 4255 /// class C { |
| 3997 /// } | 4256 /// C(a, b); |
| 3998 /// m() => const C(true, 42); | 4257 /// } |
| 4258 /// m() => const C(true, 42); |
| 3999 /// | 4259 /// |
| 4000 R errorNonConstantConstructorInvoke( | 4260 R errorNonConstantConstructorInvoke( |
| 4001 NewExpression node, | 4261 NewExpression node, |
| 4002 Element element, | 4262 Element element, |
| 4003 DartType type, | 4263 DartType type, |
| 4004 NodeList arguments, | 4264 NodeList arguments, |
| 4005 CallStructure callStructure, | 4265 CallStructure callStructure, |
| 4006 A arg); | 4266 A arg); |
| 4007 | 4267 |
| 4008 /// Invocation of a constructor on an abstract [type] with [arguments]. | 4268 /// Invocation of a constructor on an abstract [type] with [arguments]. |
| 4009 /// | 4269 /// |
| 4010 /// For instance | 4270 /// For instance: |
| 4011 /// m() => new Unresolved(true, 42); | 4271 /// |
| 4272 /// m() => new Unresolved(true, 42); |
| 4012 /// | 4273 /// |
| 4013 /// where [type] is the malformed type `Unresolved`. | 4274 /// where [type] is the malformed type `Unresolved`. |
| 4014 /// | 4275 /// |
| 4015 R visitAbstractClassConstructorInvoke( | 4276 R visitAbstractClassConstructorInvoke( |
| 4016 NewExpression node, | 4277 NewExpression node, |
| 4017 ConstructorElement element, | 4278 ConstructorElement element, |
| 4018 InterfaceType type, | 4279 InterfaceType type, |
| 4019 NodeList arguments, | 4280 NodeList arguments, |
| 4020 CallStructure callStructure, | 4281 CallStructure callStructure, |
| 4021 A arg); | 4282 A arg); |
| 4022 | 4283 |
| 4023 /// Invocation of a factory [constructor] on [type] with [arguments] where | 4284 /// Invocation of a factory [constructor] on [type] with [arguments] where |
| 4024 /// [effectiveTarget] and [effectiveTargetType] are the constructor effective | 4285 /// [effectiveTarget] and [effectiveTargetType] are the constructor effective |
| 4025 /// invoked and its type, respectively. | 4286 /// invoked and its type, respectively. |
| 4026 /// | 4287 /// |
| 4027 /// For instance | 4288 /// For instance: |
| 4028 /// class C { | 4289 /// |
| 4029 /// factory C(a, b) = Unresolved; | 4290 /// class C { |
| 4030 /// factory C.a(a, b) = C.unresolved; | 4291 /// factory C(a, b) = Unresolved; |
| 4031 /// } | 4292 /// factory C.a(a, b) = C.unresolved; |
| 4032 /// m1() => new C(true, 42); | 4293 /// } |
| 4033 /// m2() => new C.a(true, 42); | 4294 /// m1() => new C(true, 42); |
| 4295 /// m2() => new C.a(true, 42); |
| 4034 /// | 4296 /// |
| 4035 R visitUnresolvedRedirectingFactoryConstructorInvoke( | 4297 R visitUnresolvedRedirectingFactoryConstructorInvoke( |
| 4036 NewExpression node, | 4298 NewExpression node, |
| 4037 ConstructorElement constructor, | 4299 ConstructorElement constructor, |
| 4038 InterfaceType type, | 4300 InterfaceType type, |
| 4039 NodeList arguments, | 4301 NodeList arguments, |
| 4040 CallStructure callStructure, | 4302 CallStructure callStructure, |
| 4041 A arg); | 4303 A arg); |
| 4042 | 4304 |
| 4043 /// Invocation of [constructor] on [type] with incompatible [arguments]. | 4305 /// Invocation of [constructor] on [type] with incompatible [arguments]. |
| 4044 /// | 4306 /// |
| 4045 /// For instance | 4307 /// For instance: |
| 4046 /// class C { | 4308 /// |
| 4047 /// C(a); | 4309 /// class C { |
| 4048 /// } | 4310 /// C(a); |
| 4049 /// m() => C(true, 42); | 4311 /// } |
| 4312 /// m() => C(true, 42); |
| 4050 /// | 4313 /// |
| 4051 R visitConstructorIncompatibleInvoke( | 4314 R visitConstructorIncompatibleInvoke( |
| 4052 NewExpression node, | 4315 NewExpression node, |
| 4053 ConstructorElement constructor, | 4316 ConstructorElement constructor, |
| 4054 InterfaceType type, | 4317 InterfaceType type, |
| 4055 NodeList arguments, | 4318 NodeList arguments, |
| 4056 CallStructure callStructure, | 4319 CallStructure callStructure, |
| 4057 A arg); | 4320 A arg); |
| 4058 | 4321 |
| 4059 /// Read access of an invalid expression. | 4322 /// Read access of an invalid expression. |
| 4060 /// | 4323 /// |
| 4061 /// For instance | 4324 /// For instance: |
| 4062 /// import 'foo.dart' as p; | |
| 4063 /// | 4325 /// |
| 4064 /// m() => p; | 4326 /// import 'foo.dart' as p; |
| 4327 /// |
| 4328 /// m() => p; |
| 4065 /// | 4329 /// |
| 4066 R errorInvalidGet( | 4330 R errorInvalidGet( |
| 4067 Send node, | 4331 Send node, |
| 4068 ErroneousElement error, | 4332 ErroneousElement error, |
| 4069 A arg); | 4333 A arg); |
| 4070 | 4334 |
| 4071 | 4335 |
| 4072 /// Invocation of an invalid expression with [arguments]. | 4336 /// Invocation of an invalid expression with [arguments]. |
| 4073 /// | 4337 /// |
| 4074 /// For instance | 4338 /// For instance: |
| 4075 /// import 'foo.dart' as p; | |
| 4076 /// | 4339 /// |
| 4077 /// m() => p(null, 42); | 4340 /// import 'foo.dart' as p; |
| 4341 /// |
| 4342 /// m() => p(null, 42); |
| 4078 /// | 4343 /// |
| 4079 R errorInvalidInvoke( | 4344 R errorInvalidInvoke( |
| 4080 Send node, | 4345 Send node, |
| 4081 ErroneousElement error, | 4346 ErroneousElement error, |
| 4082 NodeList arguments, | 4347 NodeList arguments, |
| 4083 Selector selector, | 4348 Selector selector, |
| 4084 A arg); | 4349 A arg); |
| 4085 | 4350 |
| 4086 /// Assignment of [rhs] to an invalid expression. | 4351 /// Assignment of [rhs] to an invalid expression. |
| 4087 /// | 4352 /// |
| 4088 /// For instance | 4353 /// For instance: |
| 4089 /// import 'foo.dart' as p; | |
| 4090 /// | 4354 /// |
| 4091 /// m() { p = 42; } | 4355 /// import 'foo.dart' as p; |
| 4356 /// |
| 4357 /// m() { p = 42; } |
| 4092 /// | 4358 /// |
| 4093 R errorInvalidSet( | 4359 R errorInvalidSet( |
| 4094 Send node, | 4360 Send node, |
| 4095 ErroneousElement error, | 4361 ErroneousElement error, |
| 4096 Node rhs, | 4362 Node rhs, |
| 4097 A arg); | 4363 A arg); |
| 4098 | 4364 |
| 4099 /// Prefix operation on an invalid expression. | 4365 /// Prefix operation on an invalid expression. |
| 4100 /// | 4366 /// |
| 4101 /// For instance | 4367 /// For instance: |
| 4102 /// import 'foo.dart' as p; | |
| 4103 /// | 4368 /// |
| 4104 /// m() => ++p; | 4369 /// import 'foo.dart' as p; |
| 4370 /// |
| 4371 /// m() => ++p; |
| 4105 /// | 4372 /// |
| 4106 R errorInvalidPrefix( | 4373 R errorInvalidPrefix( |
| 4107 Send node, | 4374 Send node, |
| 4108 ErroneousElement error, | 4375 ErroneousElement error, |
| 4109 IncDecOperator operator, | 4376 IncDecOperator operator, |
| 4110 A arg); | 4377 A arg); |
| 4111 | 4378 |
| 4112 /// Postfix operation on an invalid expression. | 4379 /// Postfix operation on an invalid expression. |
| 4113 /// | 4380 /// |
| 4114 /// For instance | 4381 /// For instance: |
| 4115 /// import 'foo.dart' as p; | |
| 4116 /// | 4382 /// |
| 4117 /// m() => p--; | 4383 /// import 'foo.dart' as p; |
| 4384 /// |
| 4385 /// m() => p--; |
| 4118 /// | 4386 /// |
| 4119 R errorInvalidPostfix( | 4387 R errorInvalidPostfix( |
| 4120 Send node, | 4388 Send node, |
| 4121 ErroneousElement error, | 4389 ErroneousElement error, |
| 4122 IncDecOperator operator, | 4390 IncDecOperator operator, |
| 4123 A arg); | 4391 A arg); |
| 4124 | 4392 |
| 4125 /// Compound assignment of [operator] with [rhs] on an invalid expression. | 4393 /// Compound assignment of [operator] with [rhs] on an invalid expression. |
| 4126 /// | 4394 /// |
| 4127 /// For instance | 4395 /// For instance: |
| 4128 /// import 'foo.dart' as p; | |
| 4129 /// | 4396 /// |
| 4130 /// m() => p += 42; | 4397 /// import 'foo.dart' as p; |
| 4398 /// |
| 4399 /// m() => p += 42; |
| 4131 /// | 4400 /// |
| 4132 R errorInvalidCompound( | 4401 R errorInvalidCompound( |
| 4133 Send node, | 4402 Send node, |
| 4134 ErroneousElement error, | 4403 ErroneousElement error, |
| 4135 AssignmentOperator operator, | 4404 AssignmentOperator operator, |
| 4136 Node rhs, | 4405 Node rhs, |
| 4137 A arg); | 4406 A arg); |
| 4138 | 4407 |
| 4408 /// Unary operation with [operator] on an invalid expression. |
| 4409 /// |
| 4410 /// For instance: |
| 4411 /// |
| 4412 /// class C { |
| 4413 /// static m() => ~super; |
| 4414 /// } |
| 4415 /// |
| 4416 R errorInvalidUnary( |
| 4417 Send node, |
| 4418 UnaryOperator operator, |
| 4419 ErroneousElement error, |
| 4420 A arg); |
| 4421 |
| 4422 /// Equals operation on an invalid left expression. |
| 4423 /// |
| 4424 /// For instance: |
| 4425 /// |
| 4426 /// class C { |
| 4427 /// static m() => super == null; |
| 4428 /// } |
| 4429 /// |
| 4430 R errorInvalidEquals( |
| 4431 Send node, |
| 4432 ErroneousElement error, |
| 4433 Node right, |
| 4434 A arg); |
| 4435 |
| 4436 /// Not equals operation on an invalid left expression. |
| 4437 /// |
| 4438 /// For instance: |
| 4439 /// |
| 4440 /// class C { |
| 4441 /// static m() => super != null; |
| 4442 /// } |
| 4443 /// |
| 4444 R errorInvalidNotEquals( |
| 4445 Send node, |
| 4446 ErroneousElement error, |
| 4447 Node right, |
| 4448 A arg); |
| 4449 |
| 4450 /// Binary operation with [operator] on an invalid left expression. |
| 4451 /// |
| 4452 /// For instance: |
| 4453 /// |
| 4454 /// class C { |
| 4455 /// static m() => super + 0; |
| 4456 /// } |
| 4457 /// |
| 4458 R errorInvalidBinary( |
| 4459 Send node, |
| 4460 ErroneousElement error, |
| 4461 BinaryOperator operator, |
| 4462 Node right, |
| 4463 A arg); |
| 4464 |
| 4465 /// Index operation on an invalid expression. |
| 4466 /// |
| 4467 /// For instance: |
| 4468 /// |
| 4469 /// class C { |
| 4470 /// static m() => super[0]; |
| 4471 /// } |
| 4472 /// |
| 4473 R errorInvalidIndex( |
| 4474 Send node, |
| 4475 ErroneousElement error, |
| 4476 Node index, |
| 4477 A arg); |
| 4478 |
| 4479 /// Index set operation on an invalid expression. |
| 4480 /// |
| 4481 /// For instance: |
| 4482 /// |
| 4483 /// class C { |
| 4484 /// static m() => super[0] = 42; |
| 4485 /// } |
| 4486 /// |
| 4487 R errorInvalidIndexSet( |
| 4488 Send node, |
| 4489 ErroneousElement error, |
| 4490 Node index, |
| 4491 Node rhs, |
| 4492 A arg); |
| 4493 |
| 4494 /// Compound index set operation on an invalid expression. |
| 4495 /// |
| 4496 /// For instance: |
| 4497 /// |
| 4498 /// class C { |
| 4499 /// static m() => super[0] += 42; |
| 4500 /// } |
| 4501 /// |
| 4502 R errorInvalidCompoundIndexSet( |
| 4503 Send node, |
| 4504 ErroneousElement error, |
| 4505 Node index, |
| 4506 AssignmentOperator operator, |
| 4507 Node rhs, |
| 4508 A arg); |
| 4509 |
| 4510 /// Prefix index operation on an invalid expression. |
| 4511 /// |
| 4512 /// For instance: |
| 4513 /// |
| 4514 /// class C { |
| 4515 /// static m() => --super[0]; |
| 4516 /// } |
| 4517 /// |
| 4518 R errorInvalidIndexPrefix( |
| 4519 Send node, |
| 4520 ErroneousElement error, |
| 4521 Node index, |
| 4522 IncDecOperator operator, |
| 4523 A arg); |
| 4524 |
| 4525 /// Postfix index operation on an invalid expression. |
| 4526 /// |
| 4527 /// For instance: |
| 4528 /// |
| 4529 /// class C { |
| 4530 /// static m() => super[0]++; |
| 4531 /// } |
| 4532 /// |
| 4533 R errorInvalidIndexPostfix( |
| 4534 Send node, |
| 4535 ErroneousElement error, |
| 4536 Node index, |
| 4537 IncDecOperator operator, |
| 4538 A arg); |
| 4539 |
| 4139 /// Access of library through a deferred [prefix]. | 4540 /// Access of library through a deferred [prefix]. |
| 4140 /// | 4541 /// |
| 4141 /// For instance | 4542 /// For instance: |
| 4142 /// import 'lib.dart' deferred as prefix; | |
| 4143 /// | 4543 /// |
| 4144 /// m() => prefix.foo; | 4544 /// import 'lib.dart' deferred as prefix; |
| 4545 /// |
| 4546 /// m() => prefix.foo; |
| 4145 /// | 4547 /// |
| 4146 /// This visit method is special in that it is called as a pre-step to calling | 4548 /// This visit method is special in that it is called as a pre-step to calling |
| 4147 /// the visit method for the actual access. Therefore this method cannot | 4549 /// the visit method for the actual access. Therefore this method cannot |
| 4148 /// return a result to its caller. | 4550 /// return a result to its caller. |
| 4149 void previsitDeferredAccess( | 4551 void previsitDeferredAccess( |
| 4150 Send node, | 4552 Send node, |
| 4151 PrefixElement prefix, | 4553 PrefixElement prefix, |
| 4152 A arg); | 4554 A arg); |
| 4153 } | 4555 } |
| 4154 | 4556 |
| 4155 abstract class SemanticDeclarationVisitor<R, A> { | 4557 abstract class SemanticDeclarationVisitor<R, A> { |
| 4156 R apply(Node node, A arg); | 4558 R apply(Node node, A arg); |
| 4157 | 4559 |
| 4158 /// Apply this visitor to the [parameters]. | 4560 /// Apply this visitor to the [parameters]. |
| 4159 applyParameters(NodeList parameters, A arg); | 4561 applyParameters(NodeList parameters, A arg); |
| 4160 | 4562 |
| 4161 /// Apply this visitor to the initializers of [constructor]. | 4563 /// Apply this visitor to the initializers of [constructor]. |
| 4162 applyInitializers(FunctionExpression constructor, A arg); | 4564 applyInitializers(FunctionExpression constructor, A arg); |
| 4163 | 4565 |
| 4164 /// A declaration of a top level [getter]. | 4566 /// A declaration of a top level [getter]. |
| 4165 /// | 4567 /// |
| 4166 /// For instance | 4568 /// For instance: |
| 4569 /// |
| 4167 /// get m => 42; | 4570 /// get m => 42; |
| 4168 /// | 4571 /// |
| 4169 R visitTopLevelGetterDeclaration( | 4572 R visitTopLevelGetterDeclaration( |
| 4170 FunctionExpression node, | 4573 FunctionExpression node, |
| 4171 MethodElement getter, | 4574 MethodElement getter, |
| 4172 Node body, | 4575 Node body, |
| 4173 A arg); | 4576 A arg); |
| 4174 | 4577 |
| 4175 /// A declaration of a top level [setter]. | 4578 /// A declaration of a top level [setter]. |
| 4176 /// | 4579 /// |
| 4177 /// For instance | 4580 /// For instance: |
| 4581 /// |
| 4178 /// set m(a) {} | 4582 /// set m(a) {} |
| 4179 /// | 4583 /// |
| 4180 R visitTopLevelSetterDeclaration( | 4584 R visitTopLevelSetterDeclaration( |
| 4181 FunctionExpression node, | 4585 FunctionExpression node, |
| 4182 MethodElement setter, | 4586 MethodElement setter, |
| 4183 NodeList parameters, | 4587 NodeList parameters, |
| 4184 Node body, | 4588 Node body, |
| 4185 A arg); | 4589 A arg); |
| 4186 | 4590 |
| 4187 /// A declaration of a top level [function]. | 4591 /// A declaration of a top level [function]. |
| 4188 /// | 4592 /// |
| 4189 /// For instance | 4593 /// For instance: |
| 4594 /// |
| 4190 /// m(a) {} | 4595 /// m(a) {} |
| 4191 /// | 4596 /// |
| 4192 R visitTopLevelFunctionDeclaration( | 4597 R visitTopLevelFunctionDeclaration( |
| 4193 FunctionExpression node, | 4598 FunctionExpression node, |
| 4194 MethodElement function, | 4599 MethodElement function, |
| 4195 NodeList parameters, | 4600 NodeList parameters, |
| 4196 Node body, | 4601 Node body, |
| 4197 A arg); | 4602 A arg); |
| 4198 | 4603 |
| 4199 /// A declaration of a static [getter]. | 4604 /// A declaration of a static [getter]. |
| 4200 /// | 4605 /// |
| 4201 /// For instance | 4606 /// For instance: |
| 4607 /// |
| 4202 /// class C { | 4608 /// class C { |
| 4203 /// static get m => 42; | 4609 /// static get m => 42; |
| 4204 /// } | 4610 /// } |
| 4205 /// | 4611 /// |
| 4206 R visitStaticGetterDeclaration( | 4612 R visitStaticGetterDeclaration( |
| 4207 FunctionExpression node, | 4613 FunctionExpression node, |
| 4208 MethodElement getter, | 4614 MethodElement getter, |
| 4209 Node body, | 4615 Node body, |
| 4210 A arg); | 4616 A arg); |
| 4211 | 4617 |
| 4212 /// A declaration of a static [setter]. | 4618 /// A declaration of a static [setter]. |
| 4213 /// | 4619 /// |
| 4214 /// For instance | 4620 /// For instance: |
| 4621 /// |
| 4215 /// class C { | 4622 /// class C { |
| 4216 /// static set m(a) {} | 4623 /// static set m(a) {} |
| 4217 /// } | 4624 /// } |
| 4218 /// | 4625 /// |
| 4219 R visitStaticSetterDeclaration( | 4626 R visitStaticSetterDeclaration( |
| 4220 FunctionExpression node, | 4627 FunctionExpression node, |
| 4221 MethodElement setter, | 4628 MethodElement setter, |
| 4222 NodeList parameters, | 4629 NodeList parameters, |
| 4223 Node body, | 4630 Node body, |
| 4224 A arg); | 4631 A arg); |
| 4225 | 4632 |
| 4226 /// A declaration of a static [function]. | 4633 /// A declaration of a static [function]. |
| 4227 /// | 4634 /// |
| 4228 /// For instance | 4635 /// For instance: |
| 4636 /// |
| 4229 /// class C { | 4637 /// class C { |
| 4230 /// static m(a) {} | 4638 /// static m(a) {} |
| 4231 /// } | 4639 /// } |
| 4232 /// | 4640 /// |
| 4233 R visitStaticFunctionDeclaration( | 4641 R visitStaticFunctionDeclaration( |
| 4234 FunctionExpression node, | 4642 FunctionExpression node, |
| 4235 MethodElement function, | 4643 MethodElement function, |
| 4236 NodeList parameters, | 4644 NodeList parameters, |
| 4237 Node body, | 4645 Node body, |
| 4238 A arg); | 4646 A arg); |
| 4239 | 4647 |
| 4240 /// A declaration of an abstract instance [getter]. | 4648 /// A declaration of an abstract instance [getter]. |
| 4241 /// | 4649 /// |
| 4242 /// For instance | 4650 /// For instance: |
| 4651 /// |
| 4243 /// abstract class C { | 4652 /// abstract class C { |
| 4244 /// get m; | 4653 /// get m; |
| 4245 /// } | 4654 /// } |
| 4246 /// | 4655 /// |
| 4247 R visitAbstractGetterDeclaration( | 4656 R visitAbstractGetterDeclaration( |
| 4248 FunctionExpression node, | 4657 FunctionExpression node, |
| 4249 MethodElement getter, | 4658 MethodElement getter, |
| 4250 A arg); | 4659 A arg); |
| 4251 | 4660 |
| 4252 /// A declaration of an abstract instance [setter]. | 4661 /// A declaration of an abstract instance [setter]. |
| 4253 /// | 4662 /// |
| 4254 /// For instance | 4663 /// For instance: |
| 4664 /// |
| 4255 /// abstract class C { | 4665 /// abstract class C { |
| 4256 /// set m(a); | 4666 /// set m(a); |
| 4257 /// } | 4667 /// } |
| 4258 /// | 4668 /// |
| 4259 R visitAbstractSetterDeclaration( | 4669 R visitAbstractSetterDeclaration( |
| 4260 FunctionExpression node, | 4670 FunctionExpression node, |
| 4261 MethodElement setter, | 4671 MethodElement setter, |
| 4262 NodeList parameters, | 4672 NodeList parameters, |
| 4263 A arg); | 4673 A arg); |
| 4264 | 4674 |
| 4265 /// A declaration of an abstract instance [method]. | 4675 /// A declaration of an abstract instance [method]. |
| 4266 /// | 4676 /// |
| 4267 /// For instance | 4677 /// For instance: |
| 4678 /// |
| 4268 /// abstract class C { | 4679 /// abstract class C { |
| 4269 /// m(a); | 4680 /// m(a); |
| 4270 /// } | 4681 /// } |
| 4271 /// | 4682 /// |
| 4272 R visitAbstractMethodDeclaration( | 4683 R visitAbstractMethodDeclaration( |
| 4273 FunctionExpression node, | 4684 FunctionExpression node, |
| 4274 MethodElement method, | 4685 MethodElement method, |
| 4275 NodeList parameters, | 4686 NodeList parameters, |
| 4276 A arg); | 4687 A arg); |
| 4277 | 4688 |
| 4278 /// A declaration of an instance [getter]. | 4689 /// A declaration of an instance [getter]. |
| 4279 /// | 4690 /// |
| 4280 /// For instance | 4691 /// For instance: |
| 4692 /// |
| 4281 /// class C { | 4693 /// class C { |
| 4282 /// get m => 42; | 4694 /// get m => 42; |
| 4283 /// } | 4695 /// } |
| 4284 /// | 4696 /// |
| 4285 R visitInstanceGetterDeclaration( | 4697 R visitInstanceGetterDeclaration( |
| 4286 FunctionExpression node, | 4698 FunctionExpression node, |
| 4287 MethodElement getter, | 4699 MethodElement getter, |
| 4288 Node body, | 4700 Node body, |
| 4289 A arg); | 4701 A arg); |
| 4290 | 4702 |
| 4291 /// A declaration of an instance [setter]. | 4703 /// A declaration of an instance [setter]. |
| 4292 /// | 4704 /// |
| 4293 /// For instance | 4705 /// For instance: |
| 4706 /// |
| 4294 /// class C { | 4707 /// class C { |
| 4295 /// set m(a) {} | 4708 /// set m(a) {} |
| 4296 /// } | 4709 /// } |
| 4297 /// | 4710 /// |
| 4298 R visitInstanceSetterDeclaration( | 4711 R visitInstanceSetterDeclaration( |
| 4299 FunctionExpression node, | 4712 FunctionExpression node, |
| 4300 MethodElement setter, | 4713 MethodElement setter, |
| 4301 NodeList parameters, | 4714 NodeList parameters, |
| 4302 Node body, | 4715 Node body, |
| 4303 A arg); | 4716 A arg); |
| 4304 | 4717 |
| 4305 /// A declaration of an instance [method]. | 4718 /// A declaration of an instance [method]. |
| 4306 /// | 4719 /// |
| 4307 /// For instance | 4720 /// For instance: |
| 4721 /// |
| 4308 /// class C { | 4722 /// class C { |
| 4309 /// m(a) {} | 4723 /// m(a) {} |
| 4310 /// } | 4724 /// } |
| 4311 /// | 4725 /// |
| 4312 R visitInstanceMethodDeclaration( | 4726 R visitInstanceMethodDeclaration( |
| 4313 FunctionExpression node, | 4727 FunctionExpression node, |
| 4314 MethodElement method, | 4728 MethodElement method, |
| 4315 NodeList parameters, | 4729 NodeList parameters, |
| 4316 Node body, | 4730 Node body, |
| 4317 A arg); | 4731 A arg); |
| 4318 | 4732 |
| 4319 /// A declaration of a local [function]. | 4733 /// A declaration of a local [function]. |
| 4320 /// | 4734 /// |
| 4321 /// For instance `local` in | 4735 /// For instance `local` in: |
| 4736 /// |
| 4322 /// m() { | 4737 /// m() { |
| 4323 /// local(a) {} | 4738 /// local(a) {} |
| 4324 /// } | 4739 /// } |
| 4325 /// | 4740 /// |
| 4326 R visitLocalFunctionDeclaration( | 4741 R visitLocalFunctionDeclaration( |
| 4327 FunctionExpression node, | 4742 FunctionExpression node, |
| 4328 LocalFunctionElement function, | 4743 LocalFunctionElement function, |
| 4329 NodeList parameters, | 4744 NodeList parameters, |
| 4330 Node body, | 4745 Node body, |
| 4331 A arg); | 4746 A arg); |
| 4332 | 4747 |
| 4333 /// A declaration of a [closure]. | 4748 /// A declaration of a [closure]. |
| 4334 /// | 4749 /// |
| 4335 /// For instance `(a) {}` in | 4750 /// For instance `(a) {}` in: |
| 4751 /// |
| 4336 /// m() { | 4752 /// m() { |
| 4337 /// var closure = (a) {}; | 4753 /// var closure = (a) {}; |
| 4338 /// } | 4754 /// } |
| 4339 /// | 4755 /// |
| 4340 R visitClosureDeclaration( | 4756 R visitClosureDeclaration( |
| 4341 FunctionExpression node, | 4757 FunctionExpression node, |
| 4342 LocalFunctionElement closure, | 4758 LocalFunctionElement closure, |
| 4343 NodeList parameters, | 4759 NodeList parameters, |
| 4344 Node body, | 4760 Node body, |
| 4345 A arg); | 4761 A arg); |
| 4346 | 4762 |
| 4347 /// A declaration of the [index]th [parameter] in a constructor, setter, | 4763 /// A declaration of the [index]th [parameter] in a constructor, setter, |
| 4348 /// method or function. | 4764 /// method or function. |
| 4349 /// | 4765 /// |
| 4350 /// For instance `a` in | 4766 /// For instance `a` in: |
| 4767 /// |
| 4351 /// m(a) {} | 4768 /// m(a) {} |
| 4352 /// | 4769 /// |
| 4353 R visitParameterDeclaration( | 4770 R visitParameterDeclaration( |
| 4354 VariableDefinitions node, | 4771 VariableDefinitions node, |
| 4355 Node definition, | 4772 Node definition, |
| 4356 ParameterElement parameter, | 4773 ParameterElement parameter, |
| 4357 int index, | 4774 int index, |
| 4358 A arg); | 4775 A arg); |
| 4359 | 4776 |
| 4360 /// A declaration of the [index]th optional [parameter] in a constructor, | 4777 /// A declaration of the [index]th optional [parameter] in a constructor, |
| 4361 /// method or function with the explicit [defaultValue]. If no default value | 4778 /// method or function with the explicit [defaultValue]. If no default value |
| 4362 /// is declared, [defaultValue] is `null`. | 4779 /// is declared, [defaultValue] is `null`. |
| 4363 /// | 4780 /// |
| 4364 /// For instance `a` in | 4781 /// For instance `a` in: |
| 4782 /// |
| 4365 /// m([a = 42]) {} | 4783 /// m([a = 42]) {} |
| 4366 /// | 4784 /// |
| 4367 R visitOptionalParameterDeclaration( | 4785 R visitOptionalParameterDeclaration( |
| 4368 VariableDefinitions node, | 4786 VariableDefinitions node, |
| 4369 Node definition, | 4787 Node definition, |
| 4370 ParameterElement parameter, | 4788 ParameterElement parameter, |
| 4371 ConstantExpression defaultValue, | 4789 ConstantExpression defaultValue, |
| 4372 int index, | 4790 int index, |
| 4373 A arg); | 4791 A arg); |
| 4374 | 4792 |
| 4375 /// A declaration of a named [parameter] in a constructor, method or function | 4793 /// A declaration of a named [parameter] in a constructor, method or function |
| 4376 /// with the explicit [defaultValue]. If no default value is declared, | 4794 /// with the explicit [defaultValue]. If no default value is declared, |
| 4377 /// [defaultValue] is `null`. | 4795 /// [defaultValue] is `null`. |
| 4378 /// | 4796 /// |
| 4379 /// For instance `a` in | 4797 /// For instance `a` in: |
| 4798 /// |
| 4380 /// m({a: 42}) {} | 4799 /// m({a: 42}) {} |
| 4381 /// | 4800 /// |
| 4382 R visitNamedParameterDeclaration( | 4801 R visitNamedParameterDeclaration( |
| 4383 VariableDefinitions node, | 4802 VariableDefinitions node, |
| 4384 Node definition, | 4803 Node definition, |
| 4385 ParameterElement parameter, | 4804 ParameterElement parameter, |
| 4386 ConstantExpression defaultValue, | 4805 ConstantExpression defaultValue, |
| 4387 A arg); | 4806 A arg); |
| 4388 | 4807 |
| 4389 /// A declaration of the [index]th [parameter] as an initializing formal in a | 4808 /// A declaration of the [index]th [parameter] as an initializing formal in a |
| 4390 /// constructor. | 4809 /// constructor. |
| 4391 /// | 4810 /// |
| 4392 /// For instance `a` in | 4811 /// For instance `a` in: |
| 4812 /// |
| 4393 /// class C { | 4813 /// class C { |
| 4394 /// var a; | 4814 /// var a; |
| 4395 /// C(this.a); | 4815 /// C(this.a); |
| 4396 /// } | 4816 /// } |
| 4397 /// | 4817 /// |
| 4398 R visitInitializingFormalDeclaration( | 4818 R visitInitializingFormalDeclaration( |
| 4399 VariableDefinitions node, | 4819 VariableDefinitions node, |
| 4400 Node definition, | 4820 Node definition, |
| 4401 InitializingFormalElement parameter, | 4821 InitializingFormalElement parameter, |
| 4402 int index, | 4822 int index, |
| 4403 A arg); | 4823 A arg); |
| 4404 | 4824 |
| 4405 /// A declaration of the [index]th optional [parameter] as an initializing | 4825 /// A declaration of the [index]th optional [parameter] as an initializing |
| 4406 /// formal in a constructor with the explicit [defaultValue]. If no default | 4826 /// formal in a constructor with the explicit [defaultValue]. If no default |
| 4407 /// value is declared, [defaultValue] is `null`. | 4827 /// value is declared, [defaultValue] is `null`. |
| 4408 /// | 4828 /// |
| 4409 /// For instance `a` in | 4829 /// For instance `a` in: |
| 4830 /// |
| 4410 /// class C { | 4831 /// class C { |
| 4411 /// var a; | 4832 /// var a; |
| 4412 /// C([this.a = 42]); | 4833 /// C([this.a = 42]); |
| 4413 /// } | 4834 /// } |
| 4414 /// | 4835 /// |
| 4415 R visitOptionalInitializingFormalDeclaration( | 4836 R visitOptionalInitializingFormalDeclaration( |
| 4416 VariableDefinitions node, | 4837 VariableDefinitions node, |
| 4417 Node definition, | 4838 Node definition, |
| 4418 InitializingFormalElement parameter, | 4839 InitializingFormalElement parameter, |
| 4419 ConstantExpression defaultValue, | 4840 ConstantExpression defaultValue, |
| 4420 int index, | 4841 int index, |
| 4421 A arg); | 4842 A arg); |
| 4422 | 4843 |
| 4423 /// A declaration of a named [parameter] as an initializing formal in a | 4844 /// A declaration of a named [parameter] as an initializing formal in a |
| 4424 /// constructor with the explicit [defaultValue]. If no default value is | 4845 /// constructor with the explicit [defaultValue]. If no default value is |
| 4425 /// declared, [defaultValue] is `null`. | 4846 /// declared, [defaultValue] is `null`. |
| 4426 /// | 4847 /// |
| 4427 /// For instance `a` in | 4848 /// For instance `a` in: |
| 4849 /// |
| 4428 /// class C { | 4850 /// class C { |
| 4429 /// var a; | 4851 /// var a; |
| 4430 /// C({this.a: 42}); | 4852 /// C({this.a: 42}); |
| 4431 /// } | 4853 /// } |
| 4432 /// | 4854 /// |
| 4433 R visitNamedInitializingFormalDeclaration( | 4855 R visitNamedInitializingFormalDeclaration( |
| 4434 VariableDefinitions node, | 4856 VariableDefinitions node, |
| 4435 Node definition, | 4857 Node definition, |
| 4436 InitializingFormalElement parameter, | 4858 InitializingFormalElement parameter, |
| 4437 ConstantExpression defaultValue, | 4859 ConstantExpression defaultValue, |
| 4438 A arg); | 4860 A arg); |
| 4439 | 4861 |
| 4440 /// A declaration of a local [variable] with the explicit [initializer]. If | 4862 /// A declaration of a local [variable] with the explicit [initializer]. If |
| 4441 /// no initializer is declared, [initializer] is `null`. | 4863 /// no initializer is declared, [initializer] is `null`. |
| 4442 /// | 4864 /// |
| 4443 /// For instance `a` in | 4865 /// For instance `a` in: |
| 4866 /// |
| 4444 /// m() { | 4867 /// m() { |
| 4445 /// var a = 42; | 4868 /// var a = 42; |
| 4446 /// } | 4869 /// } |
| 4447 /// | 4870 /// |
| 4448 R visitLocalVariableDeclaration( | 4871 R visitLocalVariableDeclaration( |
| 4449 VariableDefinitions node, | 4872 VariableDefinitions node, |
| 4450 Node definition, | 4873 Node definition, |
| 4451 LocalVariableElement variable, | 4874 LocalVariableElement variable, |
| 4452 Node initializer, | 4875 Node initializer, |
| 4453 A arg); | 4876 A arg); |
| 4454 | 4877 |
| 4455 /// A declaration of a local constant [variable] initialized to [constant]. | 4878 /// A declaration of a local constant [variable] initialized to [constant]. |
| 4456 /// | 4879 /// |
| 4457 /// For instance `a` in | 4880 /// For instance `a` in: |
| 4881 /// |
| 4458 /// m() { | 4882 /// m() { |
| 4459 /// const a = 42; | 4883 /// const a = 42; |
| 4460 /// } | 4884 /// } |
| 4461 /// | 4885 /// |
| 4462 R visitLocalConstantDeclaration( | 4886 R visitLocalConstantDeclaration( |
| 4463 VariableDefinitions node, | 4887 VariableDefinitions node, |
| 4464 Node definition, | 4888 Node definition, |
| 4465 LocalVariableElement variable, | 4889 LocalVariableElement variable, |
| 4466 ConstantExpression constant, | 4890 ConstantExpression constant, |
| 4467 A arg); | 4891 A arg); |
| 4468 | 4892 |
| 4469 /// A declaration of a top level [field] with the explicit [initializer]. | 4893 /// A declaration of a top level [field] with the explicit [initializer]. |
| 4470 /// If no initializer is declared, [initializer] is `null`. | 4894 /// If no initializer is declared, [initializer] is `null`. |
| 4471 /// | 4895 /// |
| 4472 /// For instance `a` in | 4896 /// For instance `a` in: |
| 4897 /// |
| 4473 /// var a = 42; | 4898 /// var a = 42; |
| 4474 /// | 4899 /// |
| 4475 R visitTopLevelFieldDeclaration( | 4900 R visitTopLevelFieldDeclaration( |
| 4476 VariableDefinitions node, | 4901 VariableDefinitions node, |
| 4477 Node definition, | 4902 Node definition, |
| 4478 FieldElement field, | 4903 FieldElement field, |
| 4479 Node initializer, | 4904 Node initializer, |
| 4480 A arg); | 4905 A arg); |
| 4481 | 4906 |
| 4482 /// A declaration of a top level constant [field] initialized to [constant]. | 4907 /// A declaration of a top level constant [field] initialized to [constant]. |
| 4483 /// | 4908 /// |
| 4484 /// For instance `a` in | 4909 /// For instance `a` in: |
| 4910 /// |
| 4485 /// const a = 42; | 4911 /// const a = 42; |
| 4486 /// | 4912 /// |
| 4487 R visitTopLevelConstantDeclaration( | 4913 R visitTopLevelConstantDeclaration( |
| 4488 VariableDefinitions node, | 4914 VariableDefinitions node, |
| 4489 Node definition, | 4915 Node definition, |
| 4490 FieldElement field, | 4916 FieldElement field, |
| 4491 ConstantExpression constant, | 4917 ConstantExpression constant, |
| 4492 A arg); | 4918 A arg); |
| 4493 | 4919 |
| 4494 /// A declaration of a static [field] with the explicit [initializer]. | 4920 /// A declaration of a static [field] with the explicit [initializer]. |
| 4495 /// If no initializer is declared, [initializer] is `null`. | 4921 /// If no initializer is declared, [initializer] is `null`. |
| 4496 /// | 4922 /// |
| 4497 /// For instance `a` in | 4923 /// For instance `a` in: |
| 4924 /// |
| 4498 /// class C { | 4925 /// class C { |
| 4499 /// static var a = 42; | 4926 /// static var a = 42; |
| 4500 /// } | 4927 /// } |
| 4501 /// | 4928 /// |
| 4502 R visitStaticFieldDeclaration( | 4929 R visitStaticFieldDeclaration( |
| 4503 VariableDefinitions node, | 4930 VariableDefinitions node, |
| 4504 Node definition, | 4931 Node definition, |
| 4505 FieldElement field, | 4932 FieldElement field, |
| 4506 Node initializer, | 4933 Node initializer, |
| 4507 A arg); | 4934 A arg); |
| 4508 | 4935 |
| 4509 /// A declaration of a static constant [field] initialized to [constant]. | 4936 /// A declaration of a static constant [field] initialized to [constant]. |
| 4510 /// | 4937 /// |
| 4511 /// For instance `a` in | 4938 /// For instance `a` in: |
| 4939 /// |
| 4512 /// class C { | 4940 /// class C { |
| 4513 /// static const a = 42; | 4941 /// static const a = 42; |
| 4514 /// } | 4942 /// } |
| 4515 /// | 4943 /// |
| 4516 R visitStaticConstantDeclaration( | 4944 R visitStaticConstantDeclaration( |
| 4517 VariableDefinitions node, | 4945 VariableDefinitions node, |
| 4518 Node definition, | 4946 Node definition, |
| 4519 FieldElement field, | 4947 FieldElement field, |
| 4520 ConstantExpression constant, | 4948 ConstantExpression constant, |
| 4521 A arg); | 4949 A arg); |
| 4522 | 4950 |
| 4523 /// A declaration of an instance [field] with the explicit [initializer]. | 4951 /// A declaration of an instance [field] with the explicit [initializer]. |
| 4524 /// If no initializer is declared, [initializer] is `null`. | 4952 /// If no initializer is declared, [initializer] is `null`. |
| 4525 /// | 4953 /// |
| 4526 /// For instance `a` in | 4954 /// For instance `a` in: |
| 4955 /// |
| 4527 /// class C { | 4956 /// class C { |
| 4528 /// var a = 42; | 4957 /// var a = 42; |
| 4529 /// } | 4958 /// } |
| 4530 /// | 4959 /// |
| 4531 R visitInstanceFieldDeclaration( | 4960 R visitInstanceFieldDeclaration( |
| 4532 VariableDefinitions node, | 4961 VariableDefinitions node, |
| 4533 Node definition, | 4962 Node definition, |
| 4534 FieldElement field, | 4963 FieldElement field, |
| 4535 Node initializer, | 4964 Node initializer, |
| 4536 A arg); | 4965 A arg); |
| 4537 | 4966 |
| 4538 /// A declaration of a generative [constructor] with the explicit constructor | 4967 /// A declaration of a generative [constructor] with the explicit constructor |
| 4539 /// [initializers]. | 4968 /// [initializers]. |
| 4540 /// | 4969 /// |
| 4541 /// For instance `C` in | 4970 /// For instance `C` in: |
| 4971 /// |
| 4542 /// class C { | 4972 /// class C { |
| 4543 /// var a; | 4973 /// var a; |
| 4544 /// C(a) : this.a = a, super(); | 4974 /// C(a) : this.a = a, super(); |
| 4545 /// } | 4975 /// } |
| 4546 /// | 4976 /// |
| 4547 // TODO(johnniwinther): Replace [initializers] with a structure like | 4977 // TODO(johnniwinther): Replace [initializers] with a structure like |
| 4548 // [InitializersStructure] when computed in resolution. | 4978 // [InitializersStructure] when computed in resolution. |
| 4549 R visitGenerativeConstructorDeclaration( | 4979 R visitGenerativeConstructorDeclaration( |
| 4550 FunctionExpression node, | 4980 FunctionExpression node, |
| 4551 ConstructorElement constructor, | 4981 ConstructorElement constructor, |
| 4552 NodeList parameters, | 4982 NodeList parameters, |
| 4553 NodeList initializers, | 4983 NodeList initializers, |
| 4554 Node body, | 4984 Node body, |
| 4555 A arg); | 4985 A arg); |
| 4556 | 4986 |
| 4557 /// A declaration of a redirecting generative [constructor] with | 4987 /// A declaration of a redirecting generative [constructor] with |
| 4558 /// [initializers] containing the redirecting constructor invocation. | 4988 /// [initializers] containing the redirecting constructor invocation. |
| 4559 /// | 4989 /// |
| 4560 /// For instance `C` in | 4990 /// For instance `C` in: |
| 4991 /// |
| 4561 /// class C { | 4992 /// class C { |
| 4562 /// C() : this._(); | 4993 /// C() : this._(); |
| 4563 /// C._(); | 4994 /// C._(); |
| 4564 /// } | 4995 /// } |
| 4565 /// | 4996 /// |
| 4566 // TODO(johnniwinther): Replace [initializers] with a single | 4997 // TODO(johnniwinther): Replace [initializers] with a single |
| 4567 // [ThisConstructorInvokeStructure] when computed in resolution. | 4998 // [ThisConstructorInvokeStructure] when computed in resolution. |
| 4568 R visitRedirectingGenerativeConstructorDeclaration( | 4999 R visitRedirectingGenerativeConstructorDeclaration( |
| 4569 FunctionExpression node, | 5000 FunctionExpression node, |
| 4570 ConstructorElement constructor, | 5001 ConstructorElement constructor, |
| 4571 NodeList parameters, | 5002 NodeList parameters, |
| 4572 NodeList initializers, | 5003 NodeList initializers, |
| 4573 A arg); | 5004 A arg); |
| 4574 | 5005 |
| 4575 /// A declaration of a factory [constructor]. | 5006 /// A declaration of a factory [constructor]. |
| 4576 /// | 5007 /// |
| 4577 /// For instance `C` in | 5008 /// For instance `C` in: |
| 5009 /// |
| 4578 /// class C { | 5010 /// class C { |
| 4579 /// factory C(a) => null; | 5011 /// factory C(a) => null; |
| 4580 /// } | 5012 /// } |
| 4581 /// | 5013 /// |
| 4582 R visitFactoryConstructorDeclaration( | 5014 R visitFactoryConstructorDeclaration( |
| 4583 FunctionExpression node, | 5015 FunctionExpression node, |
| 4584 ConstructorElement constructor, | 5016 ConstructorElement constructor, |
| 4585 NodeList parameters, | 5017 NodeList parameters, |
| 4586 Node body, | 5018 Node body, |
| 4587 A arg); | 5019 A arg); |
| 4588 | 5020 |
| 4589 /// A declaration of a redirecting factory [constructor]. The immediate | 5021 /// A declaration of a redirecting factory [constructor]. The immediate |
| 4590 /// redirection target and its type is provided in [redirectionTarget] and | 5022 /// redirection target and its type is provided in [redirectionTarget] and |
| 4591 /// [redirectionType], respectively. | 5023 /// [redirectionType], respectively. |
| 4592 /// | 5024 /// |
| 4593 /// For instance | 5025 /// For instance: |
| 5026 /// |
| 4594 /// class C<T> { | 5027 /// class C<T> { |
| 4595 /// factory C() = C<int>.a; | 5028 /// factory C() = C<int>.a; |
| 4596 /// factory C.a() = C<C<T>>.b; | 5029 /// factory C.a() = C<C<T>>.b; |
| 4597 /// C.b(); | 5030 /// C.b(); |
| 4598 /// } | 5031 /// } |
| 4599 /// where `C` has the redirection target `C.a` of type `C<int>` and `C.a` has | 5032 /// where `C` has the redirection target `C.a` of type `C<int>` and `C.a` has |
| 4600 /// the redirection target `C.b` of type `C<C<T>>`. | 5033 /// the redirection target `C.b` of type `C<C<T>>`. |
| 4601 /// | 5034 /// |
| 4602 R visitRedirectingFactoryConstructorDeclaration( | 5035 R visitRedirectingFactoryConstructorDeclaration( |
| 4603 FunctionExpression node, | 5036 FunctionExpression node, |
| 4604 ConstructorElement constructor, | 5037 ConstructorElement constructor, |
| 4605 NodeList parameters, | 5038 NodeList parameters, |
| 4606 InterfaceType redirectionType, | 5039 InterfaceType redirectionType, |
| 4607 ConstructorElement redirectionTarget, | 5040 ConstructorElement redirectionTarget, |
| 4608 A arg); | 5041 A arg); |
| 4609 | 5042 |
| 4610 /// An initializer of [field] with [initializer] as found in constructor | 5043 /// An initializer of [field] with [initializer] as found in constructor |
| 4611 /// initializers. | 5044 /// initializers. |
| 4612 /// | 5045 /// |
| 4613 /// For instance `this.a = 42` in | 5046 /// For instance `this.a = 42` in: |
| 5047 /// |
| 4614 /// class C { | 5048 /// class C { |
| 4615 /// var a; | 5049 /// var a; |
| 4616 /// C() : this.a = 42; | 5050 /// C() : this.a = 42; |
| 4617 /// } | 5051 /// } |
| 4618 /// | 5052 /// |
| 4619 R visitFieldInitializer( | 5053 R visitFieldInitializer( |
| 4620 SendSet node, | 5054 SendSet node, |
| 4621 FieldElement field, | 5055 FieldElement field, |
| 4622 Node initializer, | 5056 Node initializer, |
| 4623 A arg); | 5057 A arg); |
| 4624 | 5058 |
| 4625 /// An initializer of an unresolved field with [initializer] as found in | 5059 /// An initializer of an unresolved field with [initializer] as found in |
| 4626 /// generative constructor initializers. | 5060 /// generative constructor initializers. |
| 4627 /// | 5061 /// |
| 4628 /// For instance `this.a = 42` in | 5062 /// For instance `this.a = 42` in: |
| 5063 /// |
| 4629 /// class C { | 5064 /// class C { |
| 4630 /// C() : this.a = 42; | 5065 /// C() : this.a = 42; |
| 4631 /// } | 5066 /// } |
| 4632 /// | 5067 /// |
| 4633 R errorUnresolvedFieldInitializer( | 5068 R errorUnresolvedFieldInitializer( |
| 4634 SendSet node, | 5069 SendSet node, |
| 4635 Element element, | 5070 Element element, |
| 4636 Node initializer, | 5071 Node initializer, |
| 4637 A arg); | 5072 A arg); |
| 4638 | 5073 |
| 4639 /// An super constructor invocation of [superConstructor] with [arguments] as | 5074 /// An super constructor invocation of [superConstructor] with [arguments] as |
| 4640 /// found in generative constructor initializers. | 5075 /// found in generative constructor initializers. |
| 4641 /// | 5076 /// |
| 4642 /// For instance `super(42)` in | 5077 /// For instance `super(42)` in: |
| 5078 /// |
| 4643 /// class B { | 5079 /// class B { |
| 4644 /// B(a); | 5080 /// B(a); |
| 4645 /// } | 5081 /// } |
| 4646 /// class C extends B { | 5082 /// class C extends B { |
| 4647 /// C() : super(42); | 5083 /// C() : super(42); |
| 4648 /// } | 5084 /// } |
| 4649 /// | 5085 /// |
| 4650 R visitSuperConstructorInvoke( | 5086 R visitSuperConstructorInvoke( |
| 4651 Send node, | 5087 Send node, |
| 4652 ConstructorElement superConstructor, | 5088 ConstructorElement superConstructor, |
| 4653 InterfaceType type, | 5089 InterfaceType type, |
| 4654 NodeList arguments, | 5090 NodeList arguments, |
| 4655 CallStructure callStructure, | 5091 CallStructure callStructure, |
| 4656 A arg); | 5092 A arg); |
| 4657 | 5093 |
| 4658 /// An implicit super constructor invocation of [superConstructor] from | 5094 /// An implicit super constructor invocation of [superConstructor] from |
| 4659 /// generative constructor initializers. | 5095 /// generative constructor initializers. |
| 4660 /// | 5096 /// |
| 4661 /// For instance `super(42)` in | 5097 /// For instance `super(42)` in: |
| 5098 /// |
| 4662 /// class B { | 5099 /// class B { |
| 4663 /// B(); | 5100 /// B(); |
| 4664 /// } | 5101 /// } |
| 4665 /// class C extends B { | 5102 /// class C extends B { |
| 4666 /// C(); // Implicit super call of B(). | 5103 /// C(); // Implicit super call of B(). |
| 4667 /// } | 5104 /// } |
| 4668 /// | 5105 /// |
| 4669 R visitImplicitSuperConstructorInvoke( | 5106 R visitImplicitSuperConstructorInvoke( |
| 4670 FunctionExpression node, | 5107 FunctionExpression node, |
| 4671 ConstructorElement superConstructor, | 5108 ConstructorElement superConstructor, |
| 4672 InterfaceType type, | 5109 InterfaceType type, |
| 4673 A arg); | 5110 A arg); |
| 4674 | 5111 |
| 4675 /// An super constructor invocation of an unresolved with [arguments] as | 5112 /// An super constructor invocation of an unresolved with [arguments] as |
| 4676 /// found in generative constructor initializers. | 5113 /// found in generative constructor initializers. |
| 4677 /// | 5114 /// |
| 4678 /// For instance `super(42)` in | 5115 /// For instance `super(42)` in: |
| 5116 /// |
| 4679 /// class B { | 5117 /// class B { |
| 4680 /// B(a); | 5118 /// B(a); |
| 4681 /// } | 5119 /// } |
| 4682 /// class C extends B { | 5120 /// class C extends B { |
| 4683 /// C() : super.unresolved(42); | 5121 /// C() : super.unresolved(42); |
| 4684 /// } | 5122 /// } |
| 4685 /// | 5123 /// |
| 4686 R errorUnresolvedSuperConstructorInvoke( | 5124 R errorUnresolvedSuperConstructorInvoke( |
| 4687 Send node, | 5125 Send node, |
| 4688 Element element, | 5126 Element element, |
| 4689 NodeList arguments, | 5127 NodeList arguments, |
| 4690 Selector selector, | 5128 Selector selector, |
| 4691 A arg); | 5129 A arg); |
| 4692 | 5130 |
| 4693 /// An this constructor invocation of [thisConstructor] with [arguments] as | 5131 /// An this constructor invocation of [thisConstructor] with [arguments] as |
| 4694 /// found in a redirecting generative constructors initializer. | 5132 /// found in a redirecting generative constructors initializer. |
| 4695 /// | 5133 /// |
| 4696 /// For instance `this._(42)` in | 5134 /// For instance `this._(42)` in: |
| 5135 /// |
| 4697 /// class C { | 5136 /// class C { |
| 4698 /// C() : this._(42); | 5137 /// C() : this._(42); |
| 4699 /// C._(a); | 5138 /// C._(a); |
| 4700 /// } | 5139 /// } |
| 4701 /// | 5140 /// |
| 4702 R visitThisConstructorInvoke( | 5141 R visitThisConstructorInvoke( |
| 4703 Send node, | 5142 Send node, |
| 4704 ConstructorElement thisConstructor, | 5143 ConstructorElement thisConstructor, |
| 4705 NodeList arguments, | 5144 NodeList arguments, |
| 4706 CallStructure callStructure, | 5145 CallStructure callStructure, |
| 4707 A arg); | 5146 A arg); |
| 4708 | 5147 |
| 4709 /// An this constructor invocation of an unresolved constructor with | 5148 /// An this constructor invocation of an unresolved constructor with |
| 4710 /// [arguments] as found in a redirecting generative constructors initializer. | 5149 /// [arguments] as found in a redirecting generative constructors initializer. |
| 4711 /// | 5150 /// |
| 4712 /// For instance `this._(42)` in | 5151 /// For instance `this._(42)` in: |
| 5152 /// |
| 4713 /// class C { | 5153 /// class C { |
| 4714 /// C() : this._(42); | 5154 /// C() : this._(42); |
| 4715 /// } | 5155 /// } |
| 4716 /// | 5156 /// |
| 4717 R errorUnresolvedThisConstructorInvoke( | 5157 R errorUnresolvedThisConstructorInvoke( |
| 4718 Send node, | 5158 Send node, |
| 4719 Element element, | 5159 Element element, |
| 4720 NodeList arguments, | 5160 NodeList arguments, |
| 4721 Selector selector, | 5161 Selector selector, |
| 4722 A arg); | 5162 A arg); |
| 4723 } | 5163 } |
| OLD | NEW |