X7ROOT File Manager
Current Path:
/opt/golang/1.19.4/src/cmd/compile/internal/types2/testdata/check
opt
/
golang
/
1.19.4
/
src
/
cmd
/
compile
/
internal
/
types2
/
testdata
/
check
/
📁
..
📄
blank.go
(203 B)
📄
builtins0.go
(23.81 KB)
📄
builtins1.go
(5.46 KB)
📄
chans.go
(1.66 KB)
📄
compliterals.go
(442 B)
📄
const0.go
(9.18 KB)
📄
const1.go
(8.56 KB)
📄
constdecl.go
(3.67 KB)
📄
conversions0.go
(1.71 KB)
📄
conversions1.go
(5.07 KB)
📄
cycles0.go
(2.85 KB)
📄
cycles1.go
(781 B)
📄
cycles2.go
(1.12 KB)
📄
cycles3.go
(675 B)
📄
cycles4.go
(2.03 KB)
📄
cycles5.go
(2.98 KB)
📄
decls0.go
(3.97 KB)
📄
decls1.go
(3.6 KB)
📁
decls2
📄
decls3.go
(4.24 KB)
📄
decls4.go
(3.1 KB)
📄
decls5.go
(363 B)
📄
errors.go
(2.16 KB)
📄
expr0.go
(3.7 KB)
📄
expr1.go
(2.61 KB)
📄
expr2.go
(4.92 KB)
📄
expr3.go
(15.42 KB)
📄
funcinference.go
(2.07 KB)
📄
go1_12.go
(1.07 KB)
📄
go1_13.go
(402 B)
📄
go1_16.go
(343 B)
📄
go1_8.go
(333 B)
📄
gotos.go
(5.77 KB)
📄
importC.go
(1.23 KB)
📁
importdecl0
📁
importdecl1
📄
init0.go
(1.91 KB)
📄
init1.go
(1.46 KB)
📄
init2.go
(3.51 KB)
📁
issue25008
📄
issues0.go
(11.44 KB)
📄
issues1.go
(6.02 KB)
📄
labels.go
(3.25 KB)
📄
linalg.go
(2.24 KB)
📄
literals.go
(2.35 KB)
📄
main0.go
(361 B)
📄
main1.go
(250 B)
📄
map0.go
(2.82 KB)
📄
map1.go
(3.4 KB)
📄
methodsets.go
(3.44 KB)
📄
shifts.go
(12.62 KB)
📄
slices.go
(1.51 KB)
📄
stmt0.go
(18.68 KB)
📄
stmt1.go
(3.31 KB)
📄
typeinference.go
(1.38 KB)
📄
typeinst0.go
(1.62 KB)
📄
typeinst1.go
(5.65 KB)
📄
typeinstcycles.go
(384 B)
📄
typeparams.go
(15.06 KB)
📄
unions.go
(2.15 KB)
📄
vardecl.go
(5.47 KB)
Editing: decls3.go
// Copyright 2012 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. // embedded types package decls3 import "unsafe" import "fmt" // fields with the same name at the same level cancel each other out func _() { type ( T1 struct { X int } T2 struct { X int } T3 struct { T1; T2 } // X is embedded twice at the same level via T1->X, T2->X ) var t T3 _ = t.X /* ERROR "ambiguous selector t.X" */ } func _() { type ( T1 struct { X int } T2 struct { T1 } T3 struct { T1 } T4 struct { T2; T3 } // X is embedded twice at the same level via T2->T1->X, T3->T1->X ) var t T4 _ = t.X /* ERROR "ambiguous selector t.X" */ } func issue4355() { type ( T1 struct {X int} T2 struct {T1} T3 struct {T2} T4 struct {T2} T5 struct {T3; T4} // X is embedded twice at the same level via T3->T2->T1->X, T4->T2->T1->X ) var t T5 _ = t.X /* ERROR "ambiguous selector t.X" */ } func _() { type State int type A struct{ State } type B struct{ fmt.State } type T struct{ A; B } var t T _ = t.State /* ERROR "ambiguous selector t.State" */ } // Embedded fields can be predeclared types. func _() { type T0 struct{ int float32 f int } var x T0 _ = x.int _ = x.float32 _ = x.f type T1 struct{ T0 } var y T1 _ = y.int _ = y.float32 _ = y.f } // Restrictions on embedded field types. func _() { type I1 interface{} type I2 interface{} type P1 *int type P2 *int type UP unsafe.Pointer type T1 struct { I1 * /* ERROR "cannot be a pointer to an interface" */ I2 * /* ERROR "cannot be a pointer to an interface" */ error P1 /* ERROR "cannot be a pointer" */ * /* ERROR "cannot be a pointer" */ P2 } // unsafe.Pointers are treated like regular pointers when embedded type T2 struct { unsafe /* ERROR "cannot be unsafe.Pointer" */ .Pointer */* ERROR "cannot be unsafe.Pointer" */ /* ERROR "Pointer redeclared" */ unsafe.Pointer UP /* ERROR "cannot be unsafe.Pointer" */ * /* ERROR "cannot be unsafe.Pointer" */ /* ERROR "UP redeclared" */ UP } } // Named types that are pointers. type S struct{ x int } func (*S) m() {} type P *S func _() { var s *S _ = s.x _ = s.m var p P _ = p.x _ = p.m /* ERROR "no field or method" */ _ = P.m /* ERROR "no field or method" */ } // Borrowed from the FieldByName test cases in reflect/all_test.go. type D1 struct { d int } type D2 struct { d int } type S0 struct { A, B, C int D1 D2 } type S1 struct { B int S0 } type S2 struct { A int *S1 } type S1x struct { S1 } type S1y struct { S1 } type S3 struct { S1x S2 D, E int *S1y } type S4 struct { *S4 A int } // The X in S6 and S7 annihilate, but they also block the X in S8.S9. type S5 struct { S6 S7 S8 } type S6 struct { X int } type S7 S6 type S8 struct { S9 } type S9 struct { X int Y int } // The X in S11.S6 and S12.S6 annihilate, but they also block the X in S13.S8.S9. type S10 struct { S11 S12 S13 } type S11 struct { S6 } type S12 struct { S6 } type S13 struct { S8 } func _() { _ = struct{}{}.Foo /* ERROR "no field or method" */ _ = S0{}.A _ = S0{}.D /* ERROR "no field or method" */ _ = S1{}.A _ = S1{}.B _ = S1{}.S0 _ = S1{}.C _ = S2{}.A _ = S2{}.S1 _ = S2{}.B _ = S2{}.C _ = S2{}.D /* ERROR "no field or method" */ _ = S3{}.S1 /* ERROR "ambiguous selector S3\{\}.S1" */ _ = S3{}.A _ = S3{}.B /* ERROR "ambiguous selector" S3\{\}.B */ _ = S3{}.D _ = S3{}.E _ = S4{}.A _ = S4{}.B /* ERROR "no field or method" */ _ = S5{}.X /* ERROR "ambiguous selector S5\{\}.X" */ _ = S5{}.Y _ = S10{}.X /* ERROR "ambiguous selector S10\{\}.X" */ _ = S10{}.Y } // Borrowed from the FieldByName benchmark in reflect/all_test.go. type R0 struct { *R1 *R2 *R3 *R4 } type R1 struct { *R5 *R6 *R7 *R8 } type R2 R1 type R3 R1 type R4 R1 type R5 struct { *R9 *R10 *R11 *R12 } type R6 R5 type R7 R5 type R8 R5 type R9 struct { *R13 *R14 *R15 *R16 } type R10 R9 type R11 R9 type R12 R9 type R13 struct { *R17 *R18 *R19 *R20 } type R14 R13 type R15 R13 type R16 R13 type R17 struct { *R21 *R22 *R23 *R24 } type R18 R17 type R19 R17 type R20 R17 type R21 struct { X int } type R22 R21 type R23 R21 type R24 R21 var _ = R0{}.X /* ERROR "ambiguous selector R0\{\}.X" */
Upload File
Create Folder