mirror of
https://github.com/golang/go
synced 2024-11-25 22:07:58 -07:00
2da5022bcf
this is not a user-visible change. before, all interface values were struct Itype { Sigt *type; Sigi *inter; void *method[n]; } struct Iface { void *addr; Itype *itype; } the itype is basically a vtable, but it's unnecessary if the static type is interface{ }. for interface values with static type empty, the new representation is struct Eface { void *addr; Sigt *type; } this complicates the code somewhat, but it reduces the number of Itypes that have to be computed and cached, it opens up opportunities to avoid function calls in a few common cases, and it will make it possible to lay out interface{} values at compile time, which i think i'll need for the new reflection. R=ken OCL=28701 CL=29121
253 lines
5.3 KiB
Plaintext
253 lines
5.3 KiB
Plaintext
|
|
=========== ./cmp2.go
|
|
comparing uncomparable type []int
|
|
throw: interface compare
|
|
|
|
panic PC=xxx
|
|
|
|
=========== ./cmp3.go
|
|
comparing uncomparable type map[string] int
|
|
throw: interface compare
|
|
|
|
panic PC=xxx
|
|
|
|
=========== ./cmp4.go
|
|
hash of unhashable type []int
|
|
throw: interface hash
|
|
|
|
panic PC=xxx
|
|
|
|
=========== ./cmp5.go
|
|
hash of unhashable type map[string] int
|
|
throw: interface hash
|
|
|
|
panic PC=xxx
|
|
|
|
=========== ./helloworld.go
|
|
hello, world
|
|
|
|
=========== ./interface2.go
|
|
cannot convert type *main.S to interface main.I: missing method Foo
|
|
throw: interface conversion
|
|
|
|
panic PC=xxx
|
|
|
|
=========== ./interface3.go
|
|
cannot convert type *main.S to interface main.I2: missing method Name
|
|
throw: interface conversion
|
|
|
|
panic PC=xxx
|
|
|
|
=========== ./peano.go
|
|
0! = 1
|
|
1! = 1
|
|
2! = 2
|
|
3! = 6
|
|
4! = 24
|
|
5! = 120
|
|
6! = 720
|
|
7! = 5040
|
|
8! = 40320
|
|
9! = 362880
|
|
10! = 3628800
|
|
|
|
=========== ./printbig.go
|
|
-9223372036854775808
|
|
9223372036854775807
|
|
|
|
=========== ./sigchld.go
|
|
survived SIGCHLD
|
|
|
|
=========== ./turing.go
|
|
Hello World!
|
|
|
|
=========== ken/intervar.go
|
|
print 1 bio 2 file 3 -- abc
|
|
|
|
=========== ken/label.go
|
|
100
|
|
|
|
=========== ken/rob1.go
|
|
9876543210
|
|
|
|
=========== ken/rob2.go
|
|
(defn foo (add 12 34))
|
|
|
|
=========== ken/simpprint.go
|
|
hello world
|
|
|
|
=========== ken/simpswitch.go
|
|
0out01out12out2aout34out4fiveout56out6aout78out89out9
|
|
|
|
=========== ken/string.go
|
|
abcxyz-abcxyz-abcxyz-abcxyz-abcxyz-abcxyz-abcxyz
|
|
|
|
=========== chan/nonblock.go
|
|
PASS
|
|
|
|
=========== bugs/bug132.go
|
|
BUG: compilation succeeds incorrectly
|
|
|
|
=========== bugs/bug136.go
|
|
BUG: should not compile
|
|
|
|
=========== bugs/bug140.go
|
|
bugs/bug140.go:6: syntax error near L1
|
|
bugs/bug140.go:7: syntax error near L2
|
|
BUG should compile
|
|
|
|
=========== bugs/bug148.go
|
|
2 3
|
|
5 7
|
|
BUG: should crash
|
|
|
|
=========== bugs/bug149.go
|
|
bugs/bug149.go:14: cannot convert []uint8 constant to string
|
|
BUG: should compile
|
|
|
|
=========== bugs/bug150.go
|
|
bugs/bug150.go:13: reorder2: too many function calls evaluating parameters
|
|
BUG: bug150
|
|
|
|
=========== bugs/bug151.go
|
|
bugs/bug151.go:10: illegal types for operand: CALL
|
|
string
|
|
S
|
|
BUG: bug151
|
|
|
|
=========== bugs/bug152.go
|
|
BUG: s = 0
|
|
|
|
=========== fixedbugs/bug016.go
|
|
fixedbugs/bug016.go:7: constant -3 overflows uint
|
|
|
|
=========== fixedbugs/bug027.go
|
|
hi
|
|
0 44444
|
|
1 3333
|
|
2 222
|
|
3 11
|
|
4 0
|
|
0 44444
|
|
1 3333
|
|
2 222
|
|
3 11
|
|
4 0
|
|
|
|
=========== fixedbugs/bug035.go
|
|
fixedbugs/bug035.go:6: variable i redeclared in this block
|
|
previous declaration at fixedbugs/bug035.go:5
|
|
fixedbugs/bug035.go:7: variable f redeclared in this block
|
|
previous declaration at fixedbugs/bug035.go:5
|
|
|
|
=========== fixedbugs/bug037.go
|
|
fixedbugs/bug037.go:6: vlong: undefined
|
|
fixedbugs/bug037.go:6: s: undefined
|
|
|
|
=========== fixedbugs/bug039.go
|
|
fixedbugs/bug039.go:6: variable x redeclared in this block
|
|
previous declaration at fixedbugs/bug039.go:5
|
|
|
|
=========== fixedbugs/bug041.go
|
|
fixedbugs/bug041.go:5: export of incomplete type t
|
|
|
|
=========== fixedbugs/bug049.go
|
|
fixedbugs/bug049.go:6: cannot convert nil constant to string
|
|
fixedbugs/bug049.go:6: illegal types for operand: EQ
|
|
string
|
|
nil
|
|
|
|
=========== fixedbugs/bug050.go
|
|
fixedbugs/bug050.go:3: package statement must be first
|
|
|
|
=========== fixedbugs/bug051.go
|
|
fixedbugs/bug051.go:10: expression must be a constant
|
|
|
|
=========== fixedbugs/bug062.go
|
|
fixedbugs/bug062.go:6: cannot convert nil constant to string
|
|
fixedbugs/bug062.go:6: illegal types for operand: AS
|
|
string
|
|
nil
|
|
|
|
=========== fixedbugs/bug067.go
|
|
ok
|
|
|
|
=========== fixedbugs/bug068.go
|
|
fixedbugs/bug068.go:8: unknown escape sequence: '
|
|
|
|
=========== fixedbugs/bug070.go
|
|
outer loop top k 0
|
|
inner loop top i 0
|
|
do break
|
|
broke
|
|
|
|
=========== fixedbugs/bug072.go
|
|
fixedbugs/bug072.go:6: bug: undefined
|
|
|
|
=========== fixedbugs/bug073.go
|
|
fixedbugs/bug073.go:8: illegal types for operand: LSH
|
|
int
|
|
int
|
|
fixedbugs/bug073.go:8: illegal types for operand: AS
|
|
int
|
|
fixedbugs/bug073.go:9: illegal types for operand: RSH
|
|
int
|
|
int
|
|
fixedbugs/bug073.go:9: illegal types for operand: AS
|
|
int
|
|
|
|
=========== fixedbugs/bug074.go
|
|
fixedbugs/bug074.go:6: invalid type for composite literal: string
|
|
fixedbugs/bug074.go:6: invalid type for composite literal: string
|
|
|
|
=========== fixedbugs/bug081.go
|
|
fixedbugs/bug081.go:5: no type x
|
|
|
|
=========== fixedbugs/bug083.go
|
|
fixedbugs/bug083.dir/bug1.go:9: syntax error near t0
|
|
|
|
=========== fixedbugs/bug086.go
|
|
fixedbugs/bug086.go:5: function ends without a return statement
|
|
|
|
=========== fixedbugs/bug091.go
|
|
fixedbugs/bug091.go:15: c: undefined
|
|
fixedbugs/bug091.go:15: illegal types for operand: AS
|
|
undefined
|
|
|
|
=========== fixedbugs/bug093.go
|
|
M
|
|
|
|
=========== fixedbugs/bug103.go
|
|
fixedbugs/bug103.go:8: assignment count mismatch: 1 = 0
|
|
fixedbugs/bug103.go:8: x: undefined
|
|
fixedbugs/bug103.go:8: function requires a return type
|
|
fixedbugs/bug103.go:8: illegal types for operand: AS
|
|
int
|
|
|
|
=========== fixedbugs/bug113.go
|
|
interface is int, not int32
|
|
throw: interface conversion
|
|
|
|
panic PC=xxx
|
|
|
|
=========== fixedbugs/bug121.go
|
|
fixedbugs/bug121.go:9: syntax error near T
|
|
fixedbugs/bug121.go:20: incomplete type I
|
|
fixedbugs/bug121.go:20: illegal types for operand: AS
|
|
I
|
|
*S
|
|
|
|
=========== fixedbugs/bug122.go
|
|
fixedbugs/bug122.go:6: too many arguments to make array
|
|
|
|
=========== fixedbugs/bug131.go
|
|
fixedbugs/bug131.go:7: cannot convert uint64 constant to int64
|
|
fixedbugs/bug131.go:7: illegal types for operand: AS
|
|
int64
|
|
uint64
|
|
|
|
=========== fixedbugs/bug133.go
|
|
fixedbugs/bug133.dir/bug2.go:11: undefined DOT i on bug0.T
|
|
fixedbugs/bug133.dir/bug2.go:11: illegal types for operand: RETURN
|
|
int
|