1
0
mirror of https://github.com/golang/go synced 2024-11-11 18:51:37 -07:00

gc: remove type elision in struct literals

R=ken2
CC=golang-dev
https://golang.org/cl/5437136
This commit is contained in:
Russ Cox 2011-12-05 14:22:41 -05:00
parent 98553f1422
commit 5cb1c82d96
3 changed files with 3 additions and 3 deletions

View File

@ -2183,7 +2183,7 @@ typecheckcomplit(Node **np)
s = f->sym; s = f->sym;
fielddup(newname(s), hash, nhash); fielddup(newname(s), hash, nhash);
r = l->right; r = l->right;
pushtype(r, f->type); // No pushtype allowed here. Tried and rejected.
typecheck(&r, Erv); typecheck(&r, Erv);
l->right = assignconv(r, f->type, "field value"); l->right = assignconv(r, f->type, "field value");
} }

View File

@ -58,7 +58,7 @@ func main() {
var tp *T var tp *T
tp = &T{0, 7.2, "hi", &t} tp = &T{0, 7.2, "hi", &t}
tl := &T{i: 0, next: {i: 1, next: {i: 2, next: {i: 3, next: {i: 4}}}}} tl := &T{i: 0, next: &T{i: 1, next: &T{i: 2, next: &T{i: 3, next: &T{i: 4}}}}}
teq(tl, 5) teq(tl, 5)
a1 := []int{1, 2, 3} a1 := []int{1, 2, 3}

View File

@ -34,6 +34,6 @@ type T struct {
var ( var (
_ = &T{0, 0, "", nil} // ok _ = &T{0, 0, "", nil} // ok
_ = &T{i: 0, f: 0, s: "", next: {}} // ok _ = &T{i: 0, f: 0, s: "", next: {}} // ERROR "missing type in composite literal"
_ = &T{0, 0, "", {}} // ERROR "missing type in composite literal" _ = &T{0, 0, "", {}} // ERROR "missing type in composite literal"
) )