mirror of
https://github.com/golang/go
synced 2024-11-22 06:24:38 -07:00
gc: be more specific about copy type errors
Fixes #539. R=ken2 CC=golang-dev https://golang.org/cl/190043
This commit is contained in:
parent
da225c231f
commit
07fc145744
@ -810,12 +810,19 @@ reswitch:
|
||||
goto error;
|
||||
toslice(&n->left);
|
||||
toslice(&n->right);
|
||||
defaultlit(&n->left, T);
|
||||
defaultlit(&n->right, T);
|
||||
if(!isslice(n->left->type) || !isslice(n->right->type)) {
|
||||
yyerror("arguments to copy must be slices or array pointers");
|
||||
if(!isslice(n->left->type) && !isslice(n->right->type))
|
||||
yyerror("arguments to copy must be array pointer or slice; have %lT, %lT", n->left->type, n->right->type);
|
||||
else if(!isslice(n->left->type))
|
||||
yyerror("first argument to copy should be array pointer or slice; have %lT", n->left->type);
|
||||
else
|
||||
yyerror("second argument to copy should be array pointer or slice; have %lT", n->right->type);
|
||||
goto error;
|
||||
}
|
||||
if(!eqtype(n->left->type, n->right->type)) {
|
||||
yyerror("arguments to copy must have the same type element type");
|
||||
yyerror("arguments to copy have different element types %lT and %lT", n->left->type, n->right->type);
|
||||
goto error;
|
||||
}
|
||||
goto ret;
|
||||
|
Loading…
Reference in New Issue
Block a user