From 47f4bf763dcb120d3b005974fec848eefe0858f0 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 1 Nov 2011 23:24:28 -0400 Subject: [PATCH] gc: add GOEXPERIMENT=os.Error This won't last long, I promise. R=ken2 CC=golang-dev https://golang.org/cl/5330066 --- src/cmd/gc/go.h | 1 + src/cmd/gc/lex.c | 1 + src/cmd/gc/subr.c | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h index 7d6ac08433..cff01a11f8 100644 --- a/src/cmd/gc/go.h +++ b/src/cmd/gc/go.h @@ -852,6 +852,7 @@ EXTERN int typecheckok; EXTERN int compiling_runtime; EXTERN int rune32; +EXTERN int oserror; /* * y.tab.c diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c index 86492a53bc..1dc00d70d3 100644 --- a/src/cmd/gc/lex.c +++ b/src/cmd/gc/lex.c @@ -38,6 +38,7 @@ static struct { int *val; } exper[] = { {"rune32", &rune32}, + {"os.Error", &oserror}, }; static void diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index dc1d314638..1d5c1aad25 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -2967,6 +2967,17 @@ mkpkg(Strlit *path) p->prefix = pathtoprefix(path->s); p->link = phash[h]; phash[h] = p; + + // If the compiler was built with + // GOEXPERIMENT=os.Error + // define os.Error as an alias for error. + // Terrible and won't last long, but useful for transitions. + if(oserror && strcmp(path->s, "os") == 0) { + Sym *s; + s = pkglookup("Error", p); + s->def = typenod(errortype); + } + return p; } -- 2.50.0