| Inlining, whether by literalization or reduction, |
| preserves comments in the callee. |
| |
| -- go.mod -- |
| module testdata |
| go 1.12 |
| |
| -- a/f.go -- |
| package a |
| |
| func _() { |
| f() //@ inline(re"f", f) |
| } |
| |
| func f() { |
| // a |
| /* b */ g() /* c */ |
| // d |
| } |
| |
| -- f -- |
| package a |
| |
| func _() { |
| func() { |
| // a |
| /* b */ |
| g() /* c */ |
| // d |
| }() //@ inline(re"f", f) |
| } |
| |
| func f() { |
| // a |
| /* b */ |
| g() /* c */ |
| // d |
| } |
| |
| -- a/g.go -- |
| package a |
| |
| func _() { |
| println(g()) //@ inline(re"g", g) |
| } |
| |
| func g() int { return 1 /*hello*/ + /*there*/ 1 } |
| |
| -- g -- |
| package a |
| |
| func _() { |
| println((1 /*hello*/ + /*there*/ 1)) //@ inline(re"g", g) |
| } |
| |
| func g() int { return 1 /*hello*/ + /*there*/ 1 } |