Initial commit: Go 1.23 release state
This commit is contained in:
42
test/alias3.dir/a.go
Normal file
42
test/alias3.dir/a.go
Normal file
@@ -0,0 +1,42 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package a
|
||||
|
||||
import "go/build"
|
||||
|
||||
type (
|
||||
Float64 = float64
|
||||
Rune = rune
|
||||
)
|
||||
|
||||
type (
|
||||
Int int
|
||||
IntAlias = Int
|
||||
IntAlias2 = IntAlias
|
||||
S struct {
|
||||
Int
|
||||
IntAlias
|
||||
IntAlias2
|
||||
}
|
||||
)
|
||||
|
||||
type (
|
||||
Context = build.Context
|
||||
)
|
||||
|
||||
type (
|
||||
I1 interface {
|
||||
M1(IntAlias2) Float64
|
||||
M2() Context
|
||||
}
|
||||
|
||||
I2 = interface {
|
||||
M1(Int) float64
|
||||
M2() build.Context
|
||||
}
|
||||
)
|
||||
|
||||
var i1 I1
|
||||
var i2 I2 = i1
|
||||
26
test/alias3.dir/b.go
Normal file
26
test/alias3.dir/b.go
Normal file
@@ -0,0 +1,26 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package b
|
||||
|
||||
import (
|
||||
"./a"
|
||||
. "go/build"
|
||||
)
|
||||
|
||||
func F(x float64) a.Float64 {
|
||||
return x
|
||||
}
|
||||
|
||||
type MyContext = Context // = build.Context
|
||||
|
||||
var C a.Context = Default
|
||||
|
||||
type S struct{}
|
||||
|
||||
func (S) M1(x a.IntAlias) float64 { return a.Float64(x) }
|
||||
func (S) M2() Context { return Default }
|
||||
|
||||
var _ a.I1 = S{}
|
||||
var _ a.I2 = S{}
|
||||
25
test/alias3.dir/c.go
Normal file
25
test/alias3.dir/c.go
Normal file
@@ -0,0 +1,25 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"./a"
|
||||
"./b"
|
||||
)
|
||||
|
||||
func main() {
|
||||
var _ float64 = b.F(0)
|
||||
var _ a.Rune = int32(0)
|
||||
|
||||
// embedded types can have different names but the same types
|
||||
var s a.S
|
||||
s.Int = 1
|
||||
s.IntAlias = s.Int
|
||||
s.IntAlias2 = s.Int
|
||||
|
||||
// aliases denote identical types across packages
|
||||
var c a.Context = b.C
|
||||
var _ b.MyContext = c
|
||||
}
|
||||
Reference in New Issue
Block a user