github.com/bir3/gocompiler@v0.3.205/src/cmd/compile/internal/ir/node_gen.go (about) 1 // Code generated by mknode.go. DO NOT EDIT. 2 3 package ir 4 5 import "fmt" 6 7 func (n *AddStringExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 8 func (n *AddStringExpr) copy() Node { 9 c := *n 10 c.init = copyNodes(c.init) 11 c.List = copyNodes(c.List) 12 return &c 13 } 14 func (n *AddStringExpr) doChildren(do func(Node) bool) bool { 15 if doNodes(n.init, do) { 16 return true 17 } 18 if doNodes(n.List, do) { 19 return true 20 } 21 if n.Prealloc != nil && do(n.Prealloc) { 22 return true 23 } 24 return false 25 } 26 func (n *AddStringExpr) editChildren(edit func(Node) Node) { 27 editNodes(n.init, edit) 28 editNodes(n.List, edit) 29 if n.Prealloc != nil { 30 n.Prealloc = edit(n.Prealloc).(*Name) 31 } 32 } 33 func (n *AddStringExpr) editChildrenWithHidden(edit func(Node) Node) { 34 editNodes(n.init, edit) 35 editNodes(n.List, edit) 36 if n.Prealloc != nil { 37 n.Prealloc = edit(n.Prealloc).(*Name) 38 } 39 } 40 41 func (n *AddrExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 42 func (n *AddrExpr) copy() Node { 43 c := *n 44 c.init = copyNodes(c.init) 45 return &c 46 } 47 func (n *AddrExpr) doChildren(do func(Node) bool) bool { 48 if doNodes(n.init, do) { 49 return true 50 } 51 if n.X != nil && do(n.X) { 52 return true 53 } 54 if n.Prealloc != nil && do(n.Prealloc) { 55 return true 56 } 57 return false 58 } 59 func (n *AddrExpr) editChildren(edit func(Node) Node) { 60 editNodes(n.init, edit) 61 if n.X != nil { 62 n.X = edit(n.X).(Node) 63 } 64 if n.Prealloc != nil { 65 n.Prealloc = edit(n.Prealloc).(*Name) 66 } 67 } 68 func (n *AddrExpr) editChildrenWithHidden(edit func(Node) Node) { 69 editNodes(n.init, edit) 70 if n.X != nil { 71 n.X = edit(n.X).(Node) 72 } 73 if n.Prealloc != nil { 74 n.Prealloc = edit(n.Prealloc).(*Name) 75 } 76 } 77 78 func (n *AssignListStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 79 func (n *AssignListStmt) copy() Node { 80 c := *n 81 c.init = copyNodes(c.init) 82 c.Lhs = copyNodes(c.Lhs) 83 c.Rhs = copyNodes(c.Rhs) 84 return &c 85 } 86 func (n *AssignListStmt) doChildren(do func(Node) bool) bool { 87 if doNodes(n.init, do) { 88 return true 89 } 90 if doNodes(n.Lhs, do) { 91 return true 92 } 93 if doNodes(n.Rhs, do) { 94 return true 95 } 96 return false 97 } 98 func (n *AssignListStmt) editChildren(edit func(Node) Node) { 99 editNodes(n.init, edit) 100 editNodes(n.Lhs, edit) 101 editNodes(n.Rhs, edit) 102 } 103 func (n *AssignListStmt) editChildrenWithHidden(edit func(Node) Node) { 104 editNodes(n.init, edit) 105 editNodes(n.Lhs, edit) 106 editNodes(n.Rhs, edit) 107 } 108 109 func (n *AssignOpStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 110 func (n *AssignOpStmt) copy() Node { 111 c := *n 112 c.init = copyNodes(c.init) 113 return &c 114 } 115 func (n *AssignOpStmt) doChildren(do func(Node) bool) bool { 116 if doNodes(n.init, do) { 117 return true 118 } 119 if n.X != nil && do(n.X) { 120 return true 121 } 122 if n.Y != nil && do(n.Y) { 123 return true 124 } 125 return false 126 } 127 func (n *AssignOpStmt) editChildren(edit func(Node) Node) { 128 editNodes(n.init, edit) 129 if n.X != nil { 130 n.X = edit(n.X).(Node) 131 } 132 if n.Y != nil { 133 n.Y = edit(n.Y).(Node) 134 } 135 } 136 func (n *AssignOpStmt) editChildrenWithHidden(edit func(Node) Node) { 137 editNodes(n.init, edit) 138 if n.X != nil { 139 n.X = edit(n.X).(Node) 140 } 141 if n.Y != nil { 142 n.Y = edit(n.Y).(Node) 143 } 144 } 145 146 func (n *AssignStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 147 func (n *AssignStmt) copy() Node { 148 c := *n 149 c.init = copyNodes(c.init) 150 return &c 151 } 152 func (n *AssignStmt) doChildren(do func(Node) bool) bool { 153 if doNodes(n.init, do) { 154 return true 155 } 156 if n.X != nil && do(n.X) { 157 return true 158 } 159 if n.Y != nil && do(n.Y) { 160 return true 161 } 162 return false 163 } 164 func (n *AssignStmt) editChildren(edit func(Node) Node) { 165 editNodes(n.init, edit) 166 if n.X != nil { 167 n.X = edit(n.X).(Node) 168 } 169 if n.Y != nil { 170 n.Y = edit(n.Y).(Node) 171 } 172 } 173 func (n *AssignStmt) editChildrenWithHidden(edit func(Node) Node) { 174 editNodes(n.init, edit) 175 if n.X != nil { 176 n.X = edit(n.X).(Node) 177 } 178 if n.Y != nil { 179 n.Y = edit(n.Y).(Node) 180 } 181 } 182 183 func (n *BasicLit) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 184 func (n *BasicLit) copy() Node { 185 c := *n 186 c.init = copyNodes(c.init) 187 return &c 188 } 189 func (n *BasicLit) doChildren(do func(Node) bool) bool { 190 if doNodes(n.init, do) { 191 return true 192 } 193 return false 194 } 195 func (n *BasicLit) editChildren(edit func(Node) Node) { 196 editNodes(n.init, edit) 197 } 198 func (n *BasicLit) editChildrenWithHidden(edit func(Node) Node) { 199 editNodes(n.init, edit) 200 } 201 202 func (n *BinaryExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 203 func (n *BinaryExpr) copy() Node { 204 c := *n 205 c.init = copyNodes(c.init) 206 return &c 207 } 208 func (n *BinaryExpr) doChildren(do func(Node) bool) bool { 209 if doNodes(n.init, do) { 210 return true 211 } 212 if n.X != nil && do(n.X) { 213 return true 214 } 215 if n.Y != nil && do(n.Y) { 216 return true 217 } 218 return false 219 } 220 func (n *BinaryExpr) editChildren(edit func(Node) Node) { 221 editNodes(n.init, edit) 222 if n.X != nil { 223 n.X = edit(n.X).(Node) 224 } 225 if n.Y != nil { 226 n.Y = edit(n.Y).(Node) 227 } 228 } 229 func (n *BinaryExpr) editChildrenWithHidden(edit func(Node) Node) { 230 editNodes(n.init, edit) 231 if n.X != nil { 232 n.X = edit(n.X).(Node) 233 } 234 if n.Y != nil { 235 n.Y = edit(n.Y).(Node) 236 } 237 if n.RType != nil { 238 n.RType = edit(n.RType).(Node) 239 } 240 } 241 242 func (n *BlockStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 243 func (n *BlockStmt) copy() Node { 244 c := *n 245 c.init = copyNodes(c.init) 246 c.List = copyNodes(c.List) 247 return &c 248 } 249 func (n *BlockStmt) doChildren(do func(Node) bool) bool { 250 if doNodes(n.init, do) { 251 return true 252 } 253 if doNodes(n.List, do) { 254 return true 255 } 256 return false 257 } 258 func (n *BlockStmt) editChildren(edit func(Node) Node) { 259 editNodes(n.init, edit) 260 editNodes(n.List, edit) 261 } 262 func (n *BlockStmt) editChildrenWithHidden(edit func(Node) Node) { 263 editNodes(n.init, edit) 264 editNodes(n.List, edit) 265 } 266 267 func (n *BranchStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 268 func (n *BranchStmt) copy() Node { 269 c := *n 270 c.init = copyNodes(c.init) 271 return &c 272 } 273 func (n *BranchStmt) doChildren(do func(Node) bool) bool { 274 if doNodes(n.init, do) { 275 return true 276 } 277 return false 278 } 279 func (n *BranchStmt) editChildren(edit func(Node) Node) { 280 editNodes(n.init, edit) 281 } 282 func (n *BranchStmt) editChildrenWithHidden(edit func(Node) Node) { 283 editNodes(n.init, edit) 284 } 285 286 func (n *CallExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 287 func (n *CallExpr) copy() Node { 288 c := *n 289 c.init = copyNodes(c.init) 290 c.Args = copyNodes(c.Args) 291 c.KeepAlive = copyNames(c.KeepAlive) 292 return &c 293 } 294 func (n *CallExpr) doChildren(do func(Node) bool) bool { 295 if doNodes(n.init, do) { 296 return true 297 } 298 if n.X != nil && do(n.X) { 299 return true 300 } 301 if doNodes(n.Args, do) { 302 return true 303 } 304 if doNames(n.KeepAlive, do) { 305 return true 306 } 307 return false 308 } 309 func (n *CallExpr) editChildren(edit func(Node) Node) { 310 editNodes(n.init, edit) 311 if n.X != nil { 312 n.X = edit(n.X).(Node) 313 } 314 editNodes(n.Args, edit) 315 editNames(n.KeepAlive, edit) 316 } 317 func (n *CallExpr) editChildrenWithHidden(edit func(Node) Node) { 318 editNodes(n.init, edit) 319 if n.X != nil { 320 n.X = edit(n.X).(Node) 321 } 322 editNodes(n.Args, edit) 323 if n.RType != nil { 324 n.RType = edit(n.RType).(Node) 325 } 326 editNames(n.KeepAlive, edit) 327 } 328 329 func (n *CaseClause) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 330 func (n *CaseClause) copy() Node { 331 c := *n 332 c.init = copyNodes(c.init) 333 c.List = copyNodes(c.List) 334 c.RTypes = copyNodes(c.RTypes) 335 c.Body = copyNodes(c.Body) 336 return &c 337 } 338 func (n *CaseClause) doChildren(do func(Node) bool) bool { 339 if doNodes(n.init, do) { 340 return true 341 } 342 if n.Var != nil && do(n.Var) { 343 return true 344 } 345 if doNodes(n.List, do) { 346 return true 347 } 348 if doNodes(n.RTypes, do) { 349 return true 350 } 351 if doNodes(n.Body, do) { 352 return true 353 } 354 return false 355 } 356 func (n *CaseClause) editChildren(edit func(Node) Node) { 357 editNodes(n.init, edit) 358 if n.Var != nil { 359 n.Var = edit(n.Var).(*Name) 360 } 361 editNodes(n.List, edit) 362 editNodes(n.RTypes, edit) 363 editNodes(n.Body, edit) 364 } 365 func (n *CaseClause) editChildrenWithHidden(edit func(Node) Node) { 366 editNodes(n.init, edit) 367 if n.Var != nil { 368 n.Var = edit(n.Var).(*Name) 369 } 370 editNodes(n.List, edit) 371 editNodes(n.RTypes, edit) 372 editNodes(n.Body, edit) 373 } 374 375 func (n *ClosureExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 376 func (n *ClosureExpr) copy() Node { 377 c := *n 378 c.init = copyNodes(c.init) 379 return &c 380 } 381 func (n *ClosureExpr) doChildren(do func(Node) bool) bool { 382 if doNodes(n.init, do) { 383 return true 384 } 385 if n.Prealloc != nil && do(n.Prealloc) { 386 return true 387 } 388 return false 389 } 390 func (n *ClosureExpr) editChildren(edit func(Node) Node) { 391 editNodes(n.init, edit) 392 if n.Prealloc != nil { 393 n.Prealloc = edit(n.Prealloc).(*Name) 394 } 395 } 396 func (n *ClosureExpr) editChildrenWithHidden(edit func(Node) Node) { 397 editNodes(n.init, edit) 398 if n.Prealloc != nil { 399 n.Prealloc = edit(n.Prealloc).(*Name) 400 } 401 } 402 403 func (n *CommClause) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 404 func (n *CommClause) copy() Node { 405 c := *n 406 c.init = copyNodes(c.init) 407 c.Body = copyNodes(c.Body) 408 return &c 409 } 410 func (n *CommClause) doChildren(do func(Node) bool) bool { 411 if doNodes(n.init, do) { 412 return true 413 } 414 if n.Comm != nil && do(n.Comm) { 415 return true 416 } 417 if doNodes(n.Body, do) { 418 return true 419 } 420 return false 421 } 422 func (n *CommClause) editChildren(edit func(Node) Node) { 423 editNodes(n.init, edit) 424 if n.Comm != nil { 425 n.Comm = edit(n.Comm).(Node) 426 } 427 editNodes(n.Body, edit) 428 } 429 func (n *CommClause) editChildrenWithHidden(edit func(Node) Node) { 430 editNodes(n.init, edit) 431 if n.Comm != nil { 432 n.Comm = edit(n.Comm).(Node) 433 } 434 editNodes(n.Body, edit) 435 } 436 437 func (n *CompLitExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 438 func (n *CompLitExpr) copy() Node { 439 c := *n 440 c.init = copyNodes(c.init) 441 c.List = copyNodes(c.List) 442 return &c 443 } 444 func (n *CompLitExpr) doChildren(do func(Node) bool) bool { 445 if doNodes(n.init, do) { 446 return true 447 } 448 if doNodes(n.List, do) { 449 return true 450 } 451 if n.Prealloc != nil && do(n.Prealloc) { 452 return true 453 } 454 return false 455 } 456 func (n *CompLitExpr) editChildren(edit func(Node) Node) { 457 editNodes(n.init, edit) 458 editNodes(n.List, edit) 459 if n.Prealloc != nil { 460 n.Prealloc = edit(n.Prealloc).(*Name) 461 } 462 } 463 func (n *CompLitExpr) editChildrenWithHidden(edit func(Node) Node) { 464 editNodes(n.init, edit) 465 editNodes(n.List, edit) 466 if n.RType != nil { 467 n.RType = edit(n.RType).(Node) 468 } 469 if n.Prealloc != nil { 470 n.Prealloc = edit(n.Prealloc).(*Name) 471 } 472 } 473 474 func (n *ConstExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 475 func (n *ConstExpr) copy() Node { 476 c := *n 477 c.init = copyNodes(c.init) 478 return &c 479 } 480 func (n *ConstExpr) doChildren(do func(Node) bool) bool { 481 if doNodes(n.init, do) { 482 return true 483 } 484 return false 485 } 486 func (n *ConstExpr) editChildren(edit func(Node) Node) { 487 editNodes(n.init, edit) 488 } 489 func (n *ConstExpr) editChildrenWithHidden(edit func(Node) Node) { 490 editNodes(n.init, edit) 491 } 492 493 func (n *ConvExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 494 func (n *ConvExpr) copy() Node { 495 c := *n 496 c.init = copyNodes(c.init) 497 return &c 498 } 499 func (n *ConvExpr) doChildren(do func(Node) bool) bool { 500 if doNodes(n.init, do) { 501 return true 502 } 503 if n.X != nil && do(n.X) { 504 return true 505 } 506 return false 507 } 508 func (n *ConvExpr) editChildren(edit func(Node) Node) { 509 editNodes(n.init, edit) 510 if n.X != nil { 511 n.X = edit(n.X).(Node) 512 } 513 } 514 func (n *ConvExpr) editChildrenWithHidden(edit func(Node) Node) { 515 editNodes(n.init, edit) 516 if n.X != nil { 517 n.X = edit(n.X).(Node) 518 } 519 if n.TypeWord != nil { 520 n.TypeWord = edit(n.TypeWord).(Node) 521 } 522 if n.SrcRType != nil { 523 n.SrcRType = edit(n.SrcRType).(Node) 524 } 525 if n.ElemRType != nil { 526 n.ElemRType = edit(n.ElemRType).(Node) 527 } 528 if n.ElemElemRType != nil { 529 n.ElemElemRType = edit(n.ElemElemRType).(Node) 530 } 531 } 532 533 func (n *Decl) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 534 func (n *Decl) copy() Node { 535 c := *n 536 return &c 537 } 538 func (n *Decl) doChildren(do func(Node) bool) bool { 539 if n.X != nil && do(n.X) { 540 return true 541 } 542 return false 543 } 544 func (n *Decl) editChildren(edit func(Node) Node) { 545 if n.X != nil { 546 n.X = edit(n.X).(*Name) 547 } 548 } 549 func (n *Decl) editChildrenWithHidden(edit func(Node) Node) { 550 if n.X != nil { 551 n.X = edit(n.X).(*Name) 552 } 553 } 554 555 func (n *DynamicType) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 556 func (n *DynamicType) copy() Node { 557 c := *n 558 c.init = copyNodes(c.init) 559 return &c 560 } 561 func (n *DynamicType) doChildren(do func(Node) bool) bool { 562 if doNodes(n.init, do) { 563 return true 564 } 565 if n.RType != nil && do(n.RType) { 566 return true 567 } 568 if n.ITab != nil && do(n.ITab) { 569 return true 570 } 571 return false 572 } 573 func (n *DynamicType) editChildren(edit func(Node) Node) { 574 editNodes(n.init, edit) 575 if n.RType != nil { 576 n.RType = edit(n.RType).(Node) 577 } 578 if n.ITab != nil { 579 n.ITab = edit(n.ITab).(Node) 580 } 581 } 582 func (n *DynamicType) editChildrenWithHidden(edit func(Node) Node) { 583 editNodes(n.init, edit) 584 if n.RType != nil { 585 n.RType = edit(n.RType).(Node) 586 } 587 if n.ITab != nil { 588 n.ITab = edit(n.ITab).(Node) 589 } 590 } 591 592 func (n *DynamicTypeAssertExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 593 func (n *DynamicTypeAssertExpr) copy() Node { 594 c := *n 595 c.init = copyNodes(c.init) 596 return &c 597 } 598 func (n *DynamicTypeAssertExpr) doChildren(do func(Node) bool) bool { 599 if doNodes(n.init, do) { 600 return true 601 } 602 if n.X != nil && do(n.X) { 603 return true 604 } 605 if n.SrcRType != nil && do(n.SrcRType) { 606 return true 607 } 608 if n.RType != nil && do(n.RType) { 609 return true 610 } 611 if n.ITab != nil && do(n.ITab) { 612 return true 613 } 614 return false 615 } 616 func (n *DynamicTypeAssertExpr) editChildren(edit func(Node) Node) { 617 editNodes(n.init, edit) 618 if n.X != nil { 619 n.X = edit(n.X).(Node) 620 } 621 if n.SrcRType != nil { 622 n.SrcRType = edit(n.SrcRType).(Node) 623 } 624 if n.RType != nil { 625 n.RType = edit(n.RType).(Node) 626 } 627 if n.ITab != nil { 628 n.ITab = edit(n.ITab).(Node) 629 } 630 } 631 func (n *DynamicTypeAssertExpr) editChildrenWithHidden(edit func(Node) Node) { 632 editNodes(n.init, edit) 633 if n.X != nil { 634 n.X = edit(n.X).(Node) 635 } 636 if n.SrcRType != nil { 637 n.SrcRType = edit(n.SrcRType).(Node) 638 } 639 if n.RType != nil { 640 n.RType = edit(n.RType).(Node) 641 } 642 if n.ITab != nil { 643 n.ITab = edit(n.ITab).(Node) 644 } 645 } 646 647 func (n *ForStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 648 func (n *ForStmt) copy() Node { 649 c := *n 650 c.init = copyNodes(c.init) 651 c.Body = copyNodes(c.Body) 652 return &c 653 } 654 func (n *ForStmt) doChildren(do func(Node) bool) bool { 655 if doNodes(n.init, do) { 656 return true 657 } 658 if n.Cond != nil && do(n.Cond) { 659 return true 660 } 661 if n.Post != nil && do(n.Post) { 662 return true 663 } 664 if doNodes(n.Body, do) { 665 return true 666 } 667 return false 668 } 669 func (n *ForStmt) editChildren(edit func(Node) Node) { 670 editNodes(n.init, edit) 671 if n.Cond != nil { 672 n.Cond = edit(n.Cond).(Node) 673 } 674 if n.Post != nil { 675 n.Post = edit(n.Post).(Node) 676 } 677 editNodes(n.Body, edit) 678 } 679 func (n *ForStmt) editChildrenWithHidden(edit func(Node) Node) { 680 editNodes(n.init, edit) 681 if n.Cond != nil { 682 n.Cond = edit(n.Cond).(Node) 683 } 684 if n.Post != nil { 685 n.Post = edit(n.Post).(Node) 686 } 687 editNodes(n.Body, edit) 688 } 689 690 func (n *Func) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 691 692 func (n *GoDeferStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 693 func (n *GoDeferStmt) copy() Node { 694 c := *n 695 c.init = copyNodes(c.init) 696 return &c 697 } 698 func (n *GoDeferStmt) doChildren(do func(Node) bool) bool { 699 if doNodes(n.init, do) { 700 return true 701 } 702 if n.Call != nil && do(n.Call) { 703 return true 704 } 705 return false 706 } 707 func (n *GoDeferStmt) editChildren(edit func(Node) Node) { 708 editNodes(n.init, edit) 709 if n.Call != nil { 710 n.Call = edit(n.Call).(Node) 711 } 712 } 713 func (n *GoDeferStmt) editChildrenWithHidden(edit func(Node) Node) { 714 editNodes(n.init, edit) 715 if n.Call != nil { 716 n.Call = edit(n.Call).(Node) 717 } 718 } 719 720 func (n *Ident) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 721 func (n *Ident) copy() Node { 722 c := *n 723 c.init = copyNodes(c.init) 724 return &c 725 } 726 func (n *Ident) doChildren(do func(Node) bool) bool { 727 if doNodes(n.init, do) { 728 return true 729 } 730 return false 731 } 732 func (n *Ident) editChildren(edit func(Node) Node) { 733 editNodes(n.init, edit) 734 } 735 func (n *Ident) editChildrenWithHidden(edit func(Node) Node) { 736 editNodes(n.init, edit) 737 } 738 739 func (n *IfStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 740 func (n *IfStmt) copy() Node { 741 c := *n 742 c.init = copyNodes(c.init) 743 c.Body = copyNodes(c.Body) 744 c.Else = copyNodes(c.Else) 745 return &c 746 } 747 func (n *IfStmt) doChildren(do func(Node) bool) bool { 748 if doNodes(n.init, do) { 749 return true 750 } 751 if n.Cond != nil && do(n.Cond) { 752 return true 753 } 754 if doNodes(n.Body, do) { 755 return true 756 } 757 if doNodes(n.Else, do) { 758 return true 759 } 760 return false 761 } 762 func (n *IfStmt) editChildren(edit func(Node) Node) { 763 editNodes(n.init, edit) 764 if n.Cond != nil { 765 n.Cond = edit(n.Cond).(Node) 766 } 767 editNodes(n.Body, edit) 768 editNodes(n.Else, edit) 769 } 770 func (n *IfStmt) editChildrenWithHidden(edit func(Node) Node) { 771 editNodes(n.init, edit) 772 if n.Cond != nil { 773 n.Cond = edit(n.Cond).(Node) 774 } 775 editNodes(n.Body, edit) 776 editNodes(n.Else, edit) 777 } 778 779 func (n *IndexExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 780 func (n *IndexExpr) copy() Node { 781 c := *n 782 c.init = copyNodes(c.init) 783 return &c 784 } 785 func (n *IndexExpr) doChildren(do func(Node) bool) bool { 786 if doNodes(n.init, do) { 787 return true 788 } 789 if n.X != nil && do(n.X) { 790 return true 791 } 792 if n.Index != nil && do(n.Index) { 793 return true 794 } 795 return false 796 } 797 func (n *IndexExpr) editChildren(edit func(Node) Node) { 798 editNodes(n.init, edit) 799 if n.X != nil { 800 n.X = edit(n.X).(Node) 801 } 802 if n.Index != nil { 803 n.Index = edit(n.Index).(Node) 804 } 805 } 806 func (n *IndexExpr) editChildrenWithHidden(edit func(Node) Node) { 807 editNodes(n.init, edit) 808 if n.X != nil { 809 n.X = edit(n.X).(Node) 810 } 811 if n.Index != nil { 812 n.Index = edit(n.Index).(Node) 813 } 814 if n.RType != nil { 815 n.RType = edit(n.RType).(Node) 816 } 817 } 818 819 func (n *InlineMarkStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 820 func (n *InlineMarkStmt) copy() Node { 821 c := *n 822 c.init = copyNodes(c.init) 823 return &c 824 } 825 func (n *InlineMarkStmt) doChildren(do func(Node) bool) bool { 826 if doNodes(n.init, do) { 827 return true 828 } 829 return false 830 } 831 func (n *InlineMarkStmt) editChildren(edit func(Node) Node) { 832 editNodes(n.init, edit) 833 } 834 func (n *InlineMarkStmt) editChildrenWithHidden(edit func(Node) Node) { 835 editNodes(n.init, edit) 836 } 837 838 func (n *InlinedCallExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 839 func (n *InlinedCallExpr) copy() Node { 840 c := *n 841 c.init = copyNodes(c.init) 842 c.Body = copyNodes(c.Body) 843 c.ReturnVars = copyNodes(c.ReturnVars) 844 return &c 845 } 846 func (n *InlinedCallExpr) doChildren(do func(Node) bool) bool { 847 if doNodes(n.init, do) { 848 return true 849 } 850 if doNodes(n.Body, do) { 851 return true 852 } 853 if doNodes(n.ReturnVars, do) { 854 return true 855 } 856 return false 857 } 858 func (n *InlinedCallExpr) editChildren(edit func(Node) Node) { 859 editNodes(n.init, edit) 860 editNodes(n.Body, edit) 861 editNodes(n.ReturnVars, edit) 862 } 863 func (n *InlinedCallExpr) editChildrenWithHidden(edit func(Node) Node) { 864 editNodes(n.init, edit) 865 editNodes(n.Body, edit) 866 editNodes(n.ReturnVars, edit) 867 } 868 869 func (n *InstExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 870 func (n *InstExpr) copy() Node { 871 c := *n 872 c.init = copyNodes(c.init) 873 c.Targs = copyNtypes(c.Targs) 874 return &c 875 } 876 func (n *InstExpr) doChildren(do func(Node) bool) bool { 877 if doNodes(n.init, do) { 878 return true 879 } 880 if n.X != nil && do(n.X) { 881 return true 882 } 883 if doNtypes(n.Targs, do) { 884 return true 885 } 886 return false 887 } 888 func (n *InstExpr) editChildren(edit func(Node) Node) { 889 editNodes(n.init, edit) 890 if n.X != nil { 891 n.X = edit(n.X).(Node) 892 } 893 editNtypes(n.Targs, edit) 894 } 895 func (n *InstExpr) editChildrenWithHidden(edit func(Node) Node) { 896 editNodes(n.init, edit) 897 if n.X != nil { 898 n.X = edit(n.X).(Node) 899 } 900 editNtypes(n.Targs, edit) 901 } 902 903 func (n *JumpTableStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 904 func (n *JumpTableStmt) copy() Node { 905 c := *n 906 c.init = copyNodes(c.init) 907 return &c 908 } 909 func (n *JumpTableStmt) doChildren(do func(Node) bool) bool { 910 if doNodes(n.init, do) { 911 return true 912 } 913 if n.Idx != nil && do(n.Idx) { 914 return true 915 } 916 return false 917 } 918 func (n *JumpTableStmt) editChildren(edit func(Node) Node) { 919 editNodes(n.init, edit) 920 if n.Idx != nil { 921 n.Idx = edit(n.Idx).(Node) 922 } 923 } 924 func (n *JumpTableStmt) editChildrenWithHidden(edit func(Node) Node) { 925 editNodes(n.init, edit) 926 if n.Idx != nil { 927 n.Idx = edit(n.Idx).(Node) 928 } 929 } 930 931 func (n *KeyExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 932 func (n *KeyExpr) copy() Node { 933 c := *n 934 c.init = copyNodes(c.init) 935 return &c 936 } 937 func (n *KeyExpr) doChildren(do func(Node) bool) bool { 938 if doNodes(n.init, do) { 939 return true 940 } 941 if n.Key != nil && do(n.Key) { 942 return true 943 } 944 if n.Value != nil && do(n.Value) { 945 return true 946 } 947 return false 948 } 949 func (n *KeyExpr) editChildren(edit func(Node) Node) { 950 editNodes(n.init, edit) 951 if n.Key != nil { 952 n.Key = edit(n.Key).(Node) 953 } 954 if n.Value != nil { 955 n.Value = edit(n.Value).(Node) 956 } 957 } 958 func (n *KeyExpr) editChildrenWithHidden(edit func(Node) Node) { 959 editNodes(n.init, edit) 960 if n.Key != nil { 961 n.Key = edit(n.Key).(Node) 962 } 963 if n.Value != nil { 964 n.Value = edit(n.Value).(Node) 965 } 966 } 967 968 func (n *LabelStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 969 func (n *LabelStmt) copy() Node { 970 c := *n 971 c.init = copyNodes(c.init) 972 return &c 973 } 974 func (n *LabelStmt) doChildren(do func(Node) bool) bool { 975 if doNodes(n.init, do) { 976 return true 977 } 978 return false 979 } 980 func (n *LabelStmt) editChildren(edit func(Node) Node) { 981 editNodes(n.init, edit) 982 } 983 func (n *LabelStmt) editChildrenWithHidden(edit func(Node) Node) { 984 editNodes(n.init, edit) 985 } 986 987 func (n *LinksymOffsetExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 988 func (n *LinksymOffsetExpr) copy() Node { 989 c := *n 990 c.init = copyNodes(c.init) 991 return &c 992 } 993 func (n *LinksymOffsetExpr) doChildren(do func(Node) bool) bool { 994 if doNodes(n.init, do) { 995 return true 996 } 997 return false 998 } 999 func (n *LinksymOffsetExpr) editChildren(edit func(Node) Node) { 1000 editNodes(n.init, edit) 1001 } 1002 func (n *LinksymOffsetExpr) editChildrenWithHidden(edit func(Node) Node) { 1003 editNodes(n.init, edit) 1004 } 1005 1006 func (n *LogicalExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1007 func (n *LogicalExpr) copy() Node { 1008 c := *n 1009 c.init = copyNodes(c.init) 1010 return &c 1011 } 1012 func (n *LogicalExpr) doChildren(do func(Node) bool) bool { 1013 if doNodes(n.init, do) { 1014 return true 1015 } 1016 if n.X != nil && do(n.X) { 1017 return true 1018 } 1019 if n.Y != nil && do(n.Y) { 1020 return true 1021 } 1022 return false 1023 } 1024 func (n *LogicalExpr) editChildren(edit func(Node) Node) { 1025 editNodes(n.init, edit) 1026 if n.X != nil { 1027 n.X = edit(n.X).(Node) 1028 } 1029 if n.Y != nil { 1030 n.Y = edit(n.Y).(Node) 1031 } 1032 } 1033 func (n *LogicalExpr) editChildrenWithHidden(edit func(Node) Node) { 1034 editNodes(n.init, edit) 1035 if n.X != nil { 1036 n.X = edit(n.X).(Node) 1037 } 1038 if n.Y != nil { 1039 n.Y = edit(n.Y).(Node) 1040 } 1041 } 1042 1043 func (n *MakeExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1044 func (n *MakeExpr) copy() Node { 1045 c := *n 1046 c.init = copyNodes(c.init) 1047 return &c 1048 } 1049 func (n *MakeExpr) doChildren(do func(Node) bool) bool { 1050 if doNodes(n.init, do) { 1051 return true 1052 } 1053 if n.Len != nil && do(n.Len) { 1054 return true 1055 } 1056 if n.Cap != nil && do(n.Cap) { 1057 return true 1058 } 1059 return false 1060 } 1061 func (n *MakeExpr) editChildren(edit func(Node) Node) { 1062 editNodes(n.init, edit) 1063 if n.Len != nil { 1064 n.Len = edit(n.Len).(Node) 1065 } 1066 if n.Cap != nil { 1067 n.Cap = edit(n.Cap).(Node) 1068 } 1069 } 1070 func (n *MakeExpr) editChildrenWithHidden(edit func(Node) Node) { 1071 editNodes(n.init, edit) 1072 if n.RType != nil { 1073 n.RType = edit(n.RType).(Node) 1074 } 1075 if n.Len != nil { 1076 n.Len = edit(n.Len).(Node) 1077 } 1078 if n.Cap != nil { 1079 n.Cap = edit(n.Cap).(Node) 1080 } 1081 } 1082 1083 func (n *Name) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1084 1085 func (n *NilExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1086 func (n *NilExpr) copy() Node { 1087 c := *n 1088 c.init = copyNodes(c.init) 1089 return &c 1090 } 1091 func (n *NilExpr) doChildren(do func(Node) bool) bool { 1092 if doNodes(n.init, do) { 1093 return true 1094 } 1095 return false 1096 } 1097 func (n *NilExpr) editChildren(edit func(Node) Node) { 1098 editNodes(n.init, edit) 1099 } 1100 func (n *NilExpr) editChildrenWithHidden(edit func(Node) Node) { 1101 editNodes(n.init, edit) 1102 } 1103 1104 func (n *ParenExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1105 func (n *ParenExpr) copy() Node { 1106 c := *n 1107 c.init = copyNodes(c.init) 1108 return &c 1109 } 1110 func (n *ParenExpr) doChildren(do func(Node) bool) bool { 1111 if doNodes(n.init, do) { 1112 return true 1113 } 1114 if n.X != nil && do(n.X) { 1115 return true 1116 } 1117 return false 1118 } 1119 func (n *ParenExpr) editChildren(edit func(Node) Node) { 1120 editNodes(n.init, edit) 1121 if n.X != nil { 1122 n.X = edit(n.X).(Node) 1123 } 1124 } 1125 func (n *ParenExpr) editChildrenWithHidden(edit func(Node) Node) { 1126 editNodes(n.init, edit) 1127 if n.X != nil { 1128 n.X = edit(n.X).(Node) 1129 } 1130 } 1131 1132 func (n *RangeStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1133 func (n *RangeStmt) copy() Node { 1134 c := *n 1135 c.init = copyNodes(c.init) 1136 c.Body = copyNodes(c.Body) 1137 return &c 1138 } 1139 func (n *RangeStmt) doChildren(do func(Node) bool) bool { 1140 if doNodes(n.init, do) { 1141 return true 1142 } 1143 if n.X != nil && do(n.X) { 1144 return true 1145 } 1146 if n.Key != nil && do(n.Key) { 1147 return true 1148 } 1149 if n.Value != nil && do(n.Value) { 1150 return true 1151 } 1152 if doNodes(n.Body, do) { 1153 return true 1154 } 1155 if n.Prealloc != nil && do(n.Prealloc) { 1156 return true 1157 } 1158 return false 1159 } 1160 func (n *RangeStmt) editChildren(edit func(Node) Node) { 1161 editNodes(n.init, edit) 1162 if n.X != nil { 1163 n.X = edit(n.X).(Node) 1164 } 1165 if n.Key != nil { 1166 n.Key = edit(n.Key).(Node) 1167 } 1168 if n.Value != nil { 1169 n.Value = edit(n.Value).(Node) 1170 } 1171 editNodes(n.Body, edit) 1172 if n.Prealloc != nil { 1173 n.Prealloc = edit(n.Prealloc).(*Name) 1174 } 1175 } 1176 func (n *RangeStmt) editChildrenWithHidden(edit func(Node) Node) { 1177 editNodes(n.init, edit) 1178 if n.X != nil { 1179 n.X = edit(n.X).(Node) 1180 } 1181 if n.RType != nil { 1182 n.RType = edit(n.RType).(Node) 1183 } 1184 if n.Key != nil { 1185 n.Key = edit(n.Key).(Node) 1186 } 1187 if n.Value != nil { 1188 n.Value = edit(n.Value).(Node) 1189 } 1190 editNodes(n.Body, edit) 1191 if n.Prealloc != nil { 1192 n.Prealloc = edit(n.Prealloc).(*Name) 1193 } 1194 if n.KeyTypeWord != nil { 1195 n.KeyTypeWord = edit(n.KeyTypeWord).(Node) 1196 } 1197 if n.KeySrcRType != nil { 1198 n.KeySrcRType = edit(n.KeySrcRType).(Node) 1199 } 1200 if n.ValueTypeWord != nil { 1201 n.ValueTypeWord = edit(n.ValueTypeWord).(Node) 1202 } 1203 if n.ValueSrcRType != nil { 1204 n.ValueSrcRType = edit(n.ValueSrcRType).(Node) 1205 } 1206 } 1207 1208 func (n *RawOrigExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1209 func (n *RawOrigExpr) copy() Node { 1210 c := *n 1211 c.init = copyNodes(c.init) 1212 return &c 1213 } 1214 func (n *RawOrigExpr) doChildren(do func(Node) bool) bool { 1215 if doNodes(n.init, do) { 1216 return true 1217 } 1218 return false 1219 } 1220 func (n *RawOrigExpr) editChildren(edit func(Node) Node) { 1221 editNodes(n.init, edit) 1222 } 1223 func (n *RawOrigExpr) editChildrenWithHidden(edit func(Node) Node) { 1224 editNodes(n.init, edit) 1225 } 1226 1227 func (n *ResultExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1228 func (n *ResultExpr) copy() Node { 1229 c := *n 1230 c.init = copyNodes(c.init) 1231 return &c 1232 } 1233 func (n *ResultExpr) doChildren(do func(Node) bool) bool { 1234 if doNodes(n.init, do) { 1235 return true 1236 } 1237 return false 1238 } 1239 func (n *ResultExpr) editChildren(edit func(Node) Node) { 1240 editNodes(n.init, edit) 1241 } 1242 func (n *ResultExpr) editChildrenWithHidden(edit func(Node) Node) { 1243 editNodes(n.init, edit) 1244 } 1245 1246 func (n *ReturnStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1247 func (n *ReturnStmt) copy() Node { 1248 c := *n 1249 c.init = copyNodes(c.init) 1250 c.Results = copyNodes(c.Results) 1251 return &c 1252 } 1253 func (n *ReturnStmt) doChildren(do func(Node) bool) bool { 1254 if doNodes(n.init, do) { 1255 return true 1256 } 1257 if doNodes(n.Results, do) { 1258 return true 1259 } 1260 return false 1261 } 1262 func (n *ReturnStmt) editChildren(edit func(Node) Node) { 1263 editNodes(n.init, edit) 1264 editNodes(n.Results, edit) 1265 } 1266 func (n *ReturnStmt) editChildrenWithHidden(edit func(Node) Node) { 1267 editNodes(n.init, edit) 1268 editNodes(n.Results, edit) 1269 } 1270 1271 func (n *SelectStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1272 func (n *SelectStmt) copy() Node { 1273 c := *n 1274 c.init = copyNodes(c.init) 1275 c.Cases = copyCommClauses(c.Cases) 1276 c.Compiled = copyNodes(c.Compiled) 1277 return &c 1278 } 1279 func (n *SelectStmt) doChildren(do func(Node) bool) bool { 1280 if doNodes(n.init, do) { 1281 return true 1282 } 1283 if doCommClauses(n.Cases, do) { 1284 return true 1285 } 1286 if doNodes(n.Compiled, do) { 1287 return true 1288 } 1289 return false 1290 } 1291 func (n *SelectStmt) editChildren(edit func(Node) Node) { 1292 editNodes(n.init, edit) 1293 editCommClauses(n.Cases, edit) 1294 editNodes(n.Compiled, edit) 1295 } 1296 func (n *SelectStmt) editChildrenWithHidden(edit func(Node) Node) { 1297 editNodes(n.init, edit) 1298 editCommClauses(n.Cases, edit) 1299 editNodes(n.Compiled, edit) 1300 } 1301 1302 func (n *SelectorExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1303 func (n *SelectorExpr) copy() Node { 1304 c := *n 1305 c.init = copyNodes(c.init) 1306 return &c 1307 } 1308 func (n *SelectorExpr) doChildren(do func(Node) bool) bool { 1309 if doNodes(n.init, do) { 1310 return true 1311 } 1312 if n.X != nil && do(n.X) { 1313 return true 1314 } 1315 if n.Prealloc != nil && do(n.Prealloc) { 1316 return true 1317 } 1318 return false 1319 } 1320 func (n *SelectorExpr) editChildren(edit func(Node) Node) { 1321 editNodes(n.init, edit) 1322 if n.X != nil { 1323 n.X = edit(n.X).(Node) 1324 } 1325 if n.Prealloc != nil { 1326 n.Prealloc = edit(n.Prealloc).(*Name) 1327 } 1328 } 1329 func (n *SelectorExpr) editChildrenWithHidden(edit func(Node) Node) { 1330 editNodes(n.init, edit) 1331 if n.X != nil { 1332 n.X = edit(n.X).(Node) 1333 } 1334 if n.Prealloc != nil { 1335 n.Prealloc = edit(n.Prealloc).(*Name) 1336 } 1337 } 1338 1339 func (n *SendStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1340 func (n *SendStmt) copy() Node { 1341 c := *n 1342 c.init = copyNodes(c.init) 1343 return &c 1344 } 1345 func (n *SendStmt) doChildren(do func(Node) bool) bool { 1346 if doNodes(n.init, do) { 1347 return true 1348 } 1349 if n.Chan != nil && do(n.Chan) { 1350 return true 1351 } 1352 if n.Value != nil && do(n.Value) { 1353 return true 1354 } 1355 return false 1356 } 1357 func (n *SendStmt) editChildren(edit func(Node) Node) { 1358 editNodes(n.init, edit) 1359 if n.Chan != nil { 1360 n.Chan = edit(n.Chan).(Node) 1361 } 1362 if n.Value != nil { 1363 n.Value = edit(n.Value).(Node) 1364 } 1365 } 1366 func (n *SendStmt) editChildrenWithHidden(edit func(Node) Node) { 1367 editNodes(n.init, edit) 1368 if n.Chan != nil { 1369 n.Chan = edit(n.Chan).(Node) 1370 } 1371 if n.Value != nil { 1372 n.Value = edit(n.Value).(Node) 1373 } 1374 } 1375 1376 func (n *SliceExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1377 func (n *SliceExpr) copy() Node { 1378 c := *n 1379 c.init = copyNodes(c.init) 1380 return &c 1381 } 1382 func (n *SliceExpr) doChildren(do func(Node) bool) bool { 1383 if doNodes(n.init, do) { 1384 return true 1385 } 1386 if n.X != nil && do(n.X) { 1387 return true 1388 } 1389 if n.Low != nil && do(n.Low) { 1390 return true 1391 } 1392 if n.High != nil && do(n.High) { 1393 return true 1394 } 1395 if n.Max != nil && do(n.Max) { 1396 return true 1397 } 1398 return false 1399 } 1400 func (n *SliceExpr) editChildren(edit func(Node) Node) { 1401 editNodes(n.init, edit) 1402 if n.X != nil { 1403 n.X = edit(n.X).(Node) 1404 } 1405 if n.Low != nil { 1406 n.Low = edit(n.Low).(Node) 1407 } 1408 if n.High != nil { 1409 n.High = edit(n.High).(Node) 1410 } 1411 if n.Max != nil { 1412 n.Max = edit(n.Max).(Node) 1413 } 1414 } 1415 func (n *SliceExpr) editChildrenWithHidden(edit func(Node) Node) { 1416 editNodes(n.init, edit) 1417 if n.X != nil { 1418 n.X = edit(n.X).(Node) 1419 } 1420 if n.Low != nil { 1421 n.Low = edit(n.Low).(Node) 1422 } 1423 if n.High != nil { 1424 n.High = edit(n.High).(Node) 1425 } 1426 if n.Max != nil { 1427 n.Max = edit(n.Max).(Node) 1428 } 1429 } 1430 1431 func (n *SliceHeaderExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1432 func (n *SliceHeaderExpr) copy() Node { 1433 c := *n 1434 c.init = copyNodes(c.init) 1435 return &c 1436 } 1437 func (n *SliceHeaderExpr) doChildren(do func(Node) bool) bool { 1438 if doNodes(n.init, do) { 1439 return true 1440 } 1441 if n.Ptr != nil && do(n.Ptr) { 1442 return true 1443 } 1444 if n.Len != nil && do(n.Len) { 1445 return true 1446 } 1447 if n.Cap != nil && do(n.Cap) { 1448 return true 1449 } 1450 return false 1451 } 1452 func (n *SliceHeaderExpr) editChildren(edit func(Node) Node) { 1453 editNodes(n.init, edit) 1454 if n.Ptr != nil { 1455 n.Ptr = edit(n.Ptr).(Node) 1456 } 1457 if n.Len != nil { 1458 n.Len = edit(n.Len).(Node) 1459 } 1460 if n.Cap != nil { 1461 n.Cap = edit(n.Cap).(Node) 1462 } 1463 } 1464 func (n *SliceHeaderExpr) editChildrenWithHidden(edit func(Node) Node) { 1465 editNodes(n.init, edit) 1466 if n.Ptr != nil { 1467 n.Ptr = edit(n.Ptr).(Node) 1468 } 1469 if n.Len != nil { 1470 n.Len = edit(n.Len).(Node) 1471 } 1472 if n.Cap != nil { 1473 n.Cap = edit(n.Cap).(Node) 1474 } 1475 } 1476 1477 func (n *StarExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1478 func (n *StarExpr) copy() Node { 1479 c := *n 1480 c.init = copyNodes(c.init) 1481 return &c 1482 } 1483 func (n *StarExpr) doChildren(do func(Node) bool) bool { 1484 if doNodes(n.init, do) { 1485 return true 1486 } 1487 if n.X != nil && do(n.X) { 1488 return true 1489 } 1490 return false 1491 } 1492 func (n *StarExpr) editChildren(edit func(Node) Node) { 1493 editNodes(n.init, edit) 1494 if n.X != nil { 1495 n.X = edit(n.X).(Node) 1496 } 1497 } 1498 func (n *StarExpr) editChildrenWithHidden(edit func(Node) Node) { 1499 editNodes(n.init, edit) 1500 if n.X != nil { 1501 n.X = edit(n.X).(Node) 1502 } 1503 } 1504 1505 func (n *StringHeaderExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1506 func (n *StringHeaderExpr) copy() Node { 1507 c := *n 1508 c.init = copyNodes(c.init) 1509 return &c 1510 } 1511 func (n *StringHeaderExpr) doChildren(do func(Node) bool) bool { 1512 if doNodes(n.init, do) { 1513 return true 1514 } 1515 if n.Ptr != nil && do(n.Ptr) { 1516 return true 1517 } 1518 if n.Len != nil && do(n.Len) { 1519 return true 1520 } 1521 return false 1522 } 1523 func (n *StringHeaderExpr) editChildren(edit func(Node) Node) { 1524 editNodes(n.init, edit) 1525 if n.Ptr != nil { 1526 n.Ptr = edit(n.Ptr).(Node) 1527 } 1528 if n.Len != nil { 1529 n.Len = edit(n.Len).(Node) 1530 } 1531 } 1532 func (n *StringHeaderExpr) editChildrenWithHidden(edit func(Node) Node) { 1533 editNodes(n.init, edit) 1534 if n.Ptr != nil { 1535 n.Ptr = edit(n.Ptr).(Node) 1536 } 1537 if n.Len != nil { 1538 n.Len = edit(n.Len).(Node) 1539 } 1540 } 1541 1542 func (n *StructKeyExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1543 func (n *StructKeyExpr) copy() Node { 1544 c := *n 1545 c.init = copyNodes(c.init) 1546 return &c 1547 } 1548 func (n *StructKeyExpr) doChildren(do func(Node) bool) bool { 1549 if doNodes(n.init, do) { 1550 return true 1551 } 1552 if n.Value != nil && do(n.Value) { 1553 return true 1554 } 1555 return false 1556 } 1557 func (n *StructKeyExpr) editChildren(edit func(Node) Node) { 1558 editNodes(n.init, edit) 1559 if n.Value != nil { 1560 n.Value = edit(n.Value).(Node) 1561 } 1562 } 1563 func (n *StructKeyExpr) editChildrenWithHidden(edit func(Node) Node) { 1564 editNodes(n.init, edit) 1565 if n.Value != nil { 1566 n.Value = edit(n.Value).(Node) 1567 } 1568 } 1569 1570 func (n *SwitchStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1571 func (n *SwitchStmt) copy() Node { 1572 c := *n 1573 c.init = copyNodes(c.init) 1574 c.Cases = copyCaseClauses(c.Cases) 1575 c.Compiled = copyNodes(c.Compiled) 1576 return &c 1577 } 1578 func (n *SwitchStmt) doChildren(do func(Node) bool) bool { 1579 if doNodes(n.init, do) { 1580 return true 1581 } 1582 if n.Tag != nil && do(n.Tag) { 1583 return true 1584 } 1585 if doCaseClauses(n.Cases, do) { 1586 return true 1587 } 1588 if doNodes(n.Compiled, do) { 1589 return true 1590 } 1591 return false 1592 } 1593 func (n *SwitchStmt) editChildren(edit func(Node) Node) { 1594 editNodes(n.init, edit) 1595 if n.Tag != nil { 1596 n.Tag = edit(n.Tag).(Node) 1597 } 1598 editCaseClauses(n.Cases, edit) 1599 editNodes(n.Compiled, edit) 1600 } 1601 func (n *SwitchStmt) editChildrenWithHidden(edit func(Node) Node) { 1602 editNodes(n.init, edit) 1603 if n.Tag != nil { 1604 n.Tag = edit(n.Tag).(Node) 1605 } 1606 editCaseClauses(n.Cases, edit) 1607 editNodes(n.Compiled, edit) 1608 } 1609 1610 func (n *TailCallStmt) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1611 func (n *TailCallStmt) copy() Node { 1612 c := *n 1613 c.init = copyNodes(c.init) 1614 return &c 1615 } 1616 func (n *TailCallStmt) doChildren(do func(Node) bool) bool { 1617 if doNodes(n.init, do) { 1618 return true 1619 } 1620 if n.Call != nil && do(n.Call) { 1621 return true 1622 } 1623 return false 1624 } 1625 func (n *TailCallStmt) editChildren(edit func(Node) Node) { 1626 editNodes(n.init, edit) 1627 if n.Call != nil { 1628 n.Call = edit(n.Call).(*CallExpr) 1629 } 1630 } 1631 func (n *TailCallStmt) editChildrenWithHidden(edit func(Node) Node) { 1632 editNodes(n.init, edit) 1633 if n.Call != nil { 1634 n.Call = edit(n.Call).(*CallExpr) 1635 } 1636 } 1637 1638 func (n *TypeAssertExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1639 func (n *TypeAssertExpr) copy() Node { 1640 c := *n 1641 c.init = copyNodes(c.init) 1642 return &c 1643 } 1644 func (n *TypeAssertExpr) doChildren(do func(Node) bool) bool { 1645 if doNodes(n.init, do) { 1646 return true 1647 } 1648 if n.X != nil && do(n.X) { 1649 return true 1650 } 1651 return false 1652 } 1653 func (n *TypeAssertExpr) editChildren(edit func(Node) Node) { 1654 editNodes(n.init, edit) 1655 if n.X != nil { 1656 n.X = edit(n.X).(Node) 1657 } 1658 } 1659 func (n *TypeAssertExpr) editChildrenWithHidden(edit func(Node) Node) { 1660 editNodes(n.init, edit) 1661 if n.X != nil { 1662 n.X = edit(n.X).(Node) 1663 } 1664 if n.ITab != nil { 1665 n.ITab = edit(n.ITab).(Node) 1666 } 1667 } 1668 1669 func (n *TypeSwitchGuard) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1670 func (n *TypeSwitchGuard) copy() Node { 1671 c := *n 1672 return &c 1673 } 1674 func (n *TypeSwitchGuard) doChildren(do func(Node) bool) bool { 1675 if n.Tag != nil && do(n.Tag) { 1676 return true 1677 } 1678 if n.X != nil && do(n.X) { 1679 return true 1680 } 1681 return false 1682 } 1683 func (n *TypeSwitchGuard) editChildren(edit func(Node) Node) { 1684 if n.Tag != nil { 1685 n.Tag = edit(n.Tag).(*Ident) 1686 } 1687 if n.X != nil { 1688 n.X = edit(n.X).(Node) 1689 } 1690 } 1691 func (n *TypeSwitchGuard) editChildrenWithHidden(edit func(Node) Node) { 1692 if n.Tag != nil { 1693 n.Tag = edit(n.Tag).(*Ident) 1694 } 1695 if n.X != nil { 1696 n.X = edit(n.X).(Node) 1697 } 1698 } 1699 1700 func (n *UnaryExpr) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1701 func (n *UnaryExpr) copy() Node { 1702 c := *n 1703 c.init = copyNodes(c.init) 1704 return &c 1705 } 1706 func (n *UnaryExpr) doChildren(do func(Node) bool) bool { 1707 if doNodes(n.init, do) { 1708 return true 1709 } 1710 if n.X != nil && do(n.X) { 1711 return true 1712 } 1713 return false 1714 } 1715 func (n *UnaryExpr) editChildren(edit func(Node) Node) { 1716 editNodes(n.init, edit) 1717 if n.X != nil { 1718 n.X = edit(n.X).(Node) 1719 } 1720 } 1721 func (n *UnaryExpr) editChildrenWithHidden(edit func(Node) Node) { 1722 editNodes(n.init, edit) 1723 if n.X != nil { 1724 n.X = edit(n.X).(Node) 1725 } 1726 } 1727 1728 func (n *typeNode) Format(s fmt.State, verb rune) { fmtNode(n, s, verb) } 1729 func (n *typeNode) copy() Node { 1730 c := *n 1731 return &c 1732 } 1733 func (n *typeNode) doChildren(do func(Node) bool) bool { 1734 return false 1735 } 1736 func (n *typeNode) editChildren(edit func(Node) Node) { 1737 } 1738 func (n *typeNode) editChildrenWithHidden(edit func(Node) Node) { 1739 } 1740 1741 func copyCaseClauses(list []*CaseClause) []*CaseClause { 1742 if list == nil { 1743 return nil 1744 } 1745 c := make([]*CaseClause, len(list)) 1746 copy(c, list) 1747 return c 1748 } 1749 func doCaseClauses(list []*CaseClause, do func(Node) bool) bool { 1750 for _, x := range list { 1751 if x != nil && do(x) { 1752 return true 1753 } 1754 } 1755 return false 1756 } 1757 func editCaseClauses(list []*CaseClause, edit func(Node) Node) { 1758 for i, x := range list { 1759 if x != nil { 1760 list[i] = edit(x).(*CaseClause) 1761 } 1762 } 1763 } 1764 1765 func copyCommClauses(list []*CommClause) []*CommClause { 1766 if list == nil { 1767 return nil 1768 } 1769 c := make([]*CommClause, len(list)) 1770 copy(c, list) 1771 return c 1772 } 1773 func doCommClauses(list []*CommClause, do func(Node) bool) bool { 1774 for _, x := range list { 1775 if x != nil && do(x) { 1776 return true 1777 } 1778 } 1779 return false 1780 } 1781 func editCommClauses(list []*CommClause, edit func(Node) Node) { 1782 for i, x := range list { 1783 if x != nil { 1784 list[i] = edit(x).(*CommClause) 1785 } 1786 } 1787 } 1788 1789 func copyNames(list []*Name) []*Name { 1790 if list == nil { 1791 return nil 1792 } 1793 c := make([]*Name, len(list)) 1794 copy(c, list) 1795 return c 1796 } 1797 func doNames(list []*Name, do func(Node) bool) bool { 1798 for _, x := range list { 1799 if x != nil && do(x) { 1800 return true 1801 } 1802 } 1803 return false 1804 } 1805 func editNames(list []*Name, edit func(Node) Node) { 1806 for i, x := range list { 1807 if x != nil { 1808 list[i] = edit(x).(*Name) 1809 } 1810 } 1811 } 1812 1813 func copyNodes(list []Node) []Node { 1814 if list == nil { 1815 return nil 1816 } 1817 c := make([]Node, len(list)) 1818 copy(c, list) 1819 return c 1820 } 1821 func doNodes(list []Node, do func(Node) bool) bool { 1822 for _, x := range list { 1823 if x != nil && do(x) { 1824 return true 1825 } 1826 } 1827 return false 1828 } 1829 func editNodes(list []Node, edit func(Node) Node) { 1830 for i, x := range list { 1831 if x != nil { 1832 list[i] = edit(x).(Node) 1833 } 1834 } 1835 } 1836 1837 func copyNtypes(list []Ntype) []Ntype { 1838 if list == nil { 1839 return nil 1840 } 1841 c := make([]Ntype, len(list)) 1842 copy(c, list) 1843 return c 1844 } 1845 func doNtypes(list []Ntype, do func(Node) bool) bool { 1846 for _, x := range list { 1847 if x != nil && do(x) { 1848 return true 1849 } 1850 } 1851 return false 1852 } 1853 func editNtypes(list []Ntype, edit func(Node) Node) { 1854 for i, x := range list { 1855 if x != nil { 1856 list[i] = edit(x).(Ntype) 1857 } 1858 } 1859 }