diff mbox

Go patch committed: Don't permit importing a package as "init"

Message ID mcrmwk5j2hg.fsf@iant-glaptop.roam.corp.google.com
State New
Headers show

Commit Message

Ian Lance Taylor Dec. 12, 2013, 7:25 p.m. UTC
In Go the top-level name "init" is special, as it names a function that
is run when the program starts.  The language therefore does not permit
other uses of "init" at top level.  This change to the Go frontend
detects and bans one of those cases: importing a package under the local
name "init".  Bootstrapped and ran Go testsuite on
x86_64-unknown-linux-gnu.  Committed to mainline.

Ian
diff mbox

Patch

diff -r 8a7a4f1b970f go/gogo.cc
--- a/go/gogo.cc	Thu Dec 12 10:36:16 2013 -0800
+++ b/go/gogo.cc	Thu Dec 12 11:23:20 2013 -0800
@@ -440,6 +440,9 @@ 
       return;
     }
 
+  if (local_name == "init")
+    error_at(location, "cannot import package as init");
+
   if (filename == "unsafe")
     {
       this->import_unsafe(local_name, is_local_name_exported, location);