compiler: accept "any" as an alias for "interface{}"

For golang/go#33232

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/382248
This commit is contained in:
Ian Lance Taylor 2022-02-01 14:44:20 -08:00
parent 3c1cbde16e
commit b523cae81c
3 changed files with 13 additions and 3 deletions

View File

@ -1,4 +1,4 @@
7d510bf5fcec9b0ccc0282f4193a80c0a164df63
61f7cf4b9db0587ff099aa36832a355b90ee1bf9
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -141,6 +141,15 @@ Gogo::Gogo(Backend* backend, Linemap* linemap, int, int pointer_size)
this->add_named_type(error_type);
}
// "any" is an alias for the empty interface type.
{
Type* empty = Type::make_empty_interface_type(loc);
Named_object* no = Named_object::make_type("any", NULL, empty, loc);
Named_type* nt = no->type_value();
nt->set_is_alias();
this->add_named_type(nt);
}
this->globals_->add_constant(Typed_identifier("true",
Type::make_boolean_type(),
loc),

View File

@ -1,4 +1,4 @@
// errorcheck
// compile
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
@ -6,4 +6,5 @@
package p
var x any // ERROR "undefined: any|undefined type .*any.*"
// any is now permitted instead of interface{}
var x any