Age | Commit message (Collapse) | Author | Files | Lines |
|
R=ken
OCL=31295
CL=31295
|
|
R=ken
OCL=31122
CL=31278
|
|
in place of sigi, sigt.
R=ken
OCL=31118
CL=31277
|
|
needed for heap allocation if variable escapes.
package main
func main(){
var i interface{} = 42;
switch v := i.(type) {
case int:
println(&v, v);
}
}
R=ken
OCL=31245
CL=31245
|
|
x << "a"
1 << int(2)
R=ken
OCL=31244
CL=31244
|
|
* give genwrapper and genembedtramp the same signature.
* move duint8, duint16, duint32, duint64, duintptr into gc.
* tidy genwrapper.
* bug involving struct field symbols in signature list.
(hash-order dependent so hard to trigger)
* new Type print format %#-T like %#T but omits
names on function arguments.
R=ken
OCL=31237
CL=31237
|
|
missing break after error.
dot symbol bug fix: leave sym alone
(was incorrect for inserted cross-package dots).
R=ken
OCL=31234
CL=31236
|
|
R=ken
OCL=31233
CL=31233
|
|
interface = (*int)(nil) is not the same as
interface = nil.
package main
func main() {
var x interface{} = (*int)(nil);
println(x.(*int));
}
R=ken
OCL=31232
CL=31232
|
|
R=ken
OCL=31230
CL=31230
|
|
when implicit assignment would have been okay.
R=ken
OCL=31225
CL=31227
|
|
package main
func main() {
var x interface {} = 42;
switch x := x.(type) {
case int:
case foo:
}
}
before:
x.go:7: non-type case in type switch
x.go:7: inappropriate case for a type switch
now:
x.go:7: foo: undefined
R=ken
OCL=31221
CL=31221
|
|
package main
func main() {
var x interface{};
switch x {
case 41:
case "b":
}
}
before:
x.go:5: fatal error: exprcmp
now:
x.go:5: illegal types for operand: EQ
interface { }
int
x.go:6: illegal types for operand: EQ
interface { }
string
R=ken
OCL=31217
CL=31219
|
|
R=r
OCL=31156
CL=31156
|
|
R=ken
OCL=31149
CL=31149
|
|
alignment issue is fixed.
R=ken
OCL=31124
CL=31144
|
|
input parameters, move output parameters
into their own struct.
R=ken
OCL=30954
CL=30966
|
|
R=ken
OCL=30889
CL=30889
|
|
(in the same package).
allow forward method declaration to be satisfied
by implementation in another file (in the same package).
all methods must be declared in the same file
as the receiver type.
R=ken
OCL=30864
CL=30869
|
|
R=ken
OCL=30783
CL=30783
|
|
R=ken
OCL=30760
CL=30779
|
|
package main
type t interface
type t interface{ m(map[t]bool) }
type m map[t] int
making it work without the forward declaration will require a second pass.
R=ken
OCL=30773
CL=30773
|
|
R=ken
OCL=30768
CL=30768
|
|
const foo = []int{1,2}
x.go:3: expression must be a constant
instead of
x.go:3: fatal error: gettype: addtop
R=ken
OCL=30767
CL=30767
|
|
wreck.mtv=; cat x.go
package main
var x = string.Split()
wreck.mtv=; 6g x.go
x.go:2: type string used as expression
x.go:2: undefined DOT Split on string
x.go:3: illegal types for operand: AS
undefined
wreck.mtv=;
BUG=1938751
R=ken
OCL=30766
CL=30766
|
|
func foo(y) { }
was:
x.go:2: NONAME-y G0 u(1) a(1) l(77) x(-1000000000) is not a type
now:
x.go:2: y is not a type
R=ken
OCL=30764
CL=30764
|
|
new flag -A enables it during mkbuiltin.
avoids mysterious errors in programs
that refer to any accidentally.
R=ken
OCL=30763
CL=30763
|
|
R=ken
OCL=30593
CL=30756
|
|
R=r
OCL=30719
CL=30719
|
|
do not bother warning about marks left
on stack after syntax errors.
leave OCONV nodes in tree to avoid type errors
arising from multiple walks.
R=ken
OCL=30639
CL=30662
|
|
R=ken
OCL=30519
CL=30534
|
|
this assumes that embedded newlines are
legal in back-quote strings.
R=r
OCL=30502
CL=30502
|
|
package main
func f(a *c.b) {}
func main() {}
BUG=1909731
R=ken
OCL=30322
CL=30322
|
|
instead of having to double the type and statement grammars.
R=ken
OCL=29987
CL=29998
|
|
* no longer distinguishes const, var, type, package names.
* all the predefined names are not tokens anymore.
R=ken
OCL=29326
CL=29985
|
|
* use new Make.$GOARCH files in gobuild.
* rename 6ar to arch-generic gopack.
* place objects in $GOROOT/pkg/$GOOS_$GOARCH
(makes cross-compiling easier, and no one
ever types these paths by hand anyway).
R=r
DELTA=29 (6 added, 8 deleted, 15 changed)
OCL=29923
CL=29967
|
|
remove a few hardcoded paths elsewhere too.
R=r,gri
DELTA=123 (44 added, 15 deleted, 64 changed)
OCL=29914
CL=29945
|
|
R=ken
OCL=29907
CL=29907
|
|
likely to go back to registers for most temporaries.
most tests in lib pass. these fail:
datafmt
fmt
go/scanner
log
reflect
strconv
template
R=ken
OCL=29896
CL=29898
|
|
R=r
DELTA=25 (25 added, 0 deleted, 0 changed)
OCL=29875
CL=29875
|
|
R=ken
OCL=29849
CL=29849
|
|
R=ken
OCL=29806
CL=29808
|
|
in complex literals. side effect is
fix of error in initializerr.go
R=r
OCL=29667
CL=29667
|
|
R=ken
OCL=29651
CL=29653
|
|
R=r
OCL=29646
CL=29646
|
|
R=r
OCL=29623
CL=29623
|
|
R=r
OCL=29612
CL=29612
|
|
R=ken
OCL=29568
CL=29570
|
|
R=r
OCL=29544
CL=29544
|
|
fewer moves, fewer stupid LEALs.
powser1 runs (with evaln commented out).
beginnings of floating point.
R=ken
OCL=29540
CL=29543
|