| Basic tests of inlining a call on the RHS of an assignment. |
| |
| -- go.mod -- |
| module testdata |
| |
| go 1.20 |
| |
| -- a/a1.go -- |
| package a |
| |
| import "testdata/b" |
| |
| func _() { |
| var y int |
| x, y := b.B1() //@ inline(re"B", b1) |
| _, _ = x, y |
| } |
| |
| -- a/a2.go -- |
| package a |
| |
| import "testdata/b" |
| |
| func _() { |
| var y int |
| x, y := b.B2() //@ inline(re"B", b2) |
| _, _ = x, y |
| } |
| |
| -- a/a3.go -- |
| package a |
| |
| import "testdata/b" |
| |
| func _() { |
| x, y := b.B3() //@ inline(re"B", b3) |
| _, _ = x, y |
| } |
| |
| -- a/a4.go -- |
| package a |
| |
| import "testdata/b" |
| |
| func _() { |
| x, y := b.B4() //@ inline(re"B", b4) |
| _, _ = x, y |
| } |
| |
| -- b/b.go -- |
| package b |
| |
| import ( |
| "testdata/c" |
| ) |
| |
| func B1() (c.C, int) { |
| return 0, 1 |
| } |
| |
| func B2() (c.C, int) { |
| return B1() |
| } |
| |
| func B3() (c.C, c.C) { |
| return 0, 1 |
| } |
| |
| -- b/b4.go -- |
| package b |
| |
| import ( |
| c1 "testdata/c" |
| c2 "testdata/c2" |
| ) |
| |
| func B4() (c1.C, c2.C) { |
| return 0, 1 |
| } |
| |
| -- c/c.go -- |
| package c |
| |
| type C int |
| |
| -- c2/c.go -- |
| package c |
| |
| type C int |
| |
| -- b1 -- |
| package a |
| |
| import ( |
| "testdata/c" |
| ) |
| |
| func _() { |
| var y int |
| x, y := c.C(0), 1 //@ inline(re"B", b1) |
| _, _ = x, y |
| } |
| -- b2 -- |
| package a |
| |
| import ( |
| "testdata/b" |
| ) |
| |
| func _() { |
| var y int |
| x, y := b.B1() //@ inline(re"B", b2) |
| _, _ = x, y |
| } |
| -- b3 -- |
| package a |
| |
| import ( |
| "testdata/c" |
| ) |
| |
| func _() { |
| x, y := c.C(0), c.C(1) //@ inline(re"B", b3) |
| _, _ = x, y |
| } |
| |
| -- b4 -- |
| package a |
| |
| import ( |
| "testdata/c" |
| c0 "testdata/c2" |
| ) |
| |
| func _() { |
| x, y := c.C(0), c0.C(1) //@ inline(re"B", b4) |
| _, _ = x, y |
| } |