diagnose export of incomplete type

R=ken
OCL=17253
CL=17253
This commit is contained in:
Russ Cox 2008-10-15 17:51:23 -07:00
parent 801f542b0f
commit 59167e5bdb
2 changed files with 23 additions and 0 deletions

View File

@ -125,6 +125,13 @@ dumpexporttype(Sym *s)
Bprint(bout, "\t");
if(s->export != 0)
Bprint(bout, "export ");
switch (s->otype->etype) {
case TFORW:
case TFORWSTRUCT:
case TFORWINTER:
yyerror("export of incomplete type %T", s->otype);
return;
}
Bprint(bout, "type %lS %l#T\n", s, s->otype);
}

16
test/export.go Normal file
View File

@ -0,0 +1,16 @@
// Copyright 2009 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.
// errchk $G $D/$F.go
package main
export type A struct // ERROR "incomplete"
export type B interface // ERROR "incomplete"
export type C struct
export type D interface
type C struct { }
type D interface { }