about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-02-23 21:06:12 -0800
committerBrian Anderson <banderson@mozilla.com>2012-02-23 21:52:41 -0800
commit9982a2a8416cb263f875e5cec7a5c5b6e2b7b1fe (patch)
tree7fdbe4c99c1dcac99a88d13426e65e0cb95d5184 /src/comp
parentcb7022cfc20b89947ff3fa96d4617f9fe64d2f3e (diff)
rustc: Don't add duplicate entries to exp_map
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/resolve.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs
index a35de9997f9..0a070f75b20 100644
--- a/src/comp/middle/resolve.rs
+++ b/src/comp/middle/resolve.rs
@@ -2021,7 +2021,13 @@ fn check_exports(e: @env) {
         alt def {
           some(def) {
             alt e.exp_map.find(path) {
-              some(v) { *v += [def]; }
+              some(v) {
+                // If there are multiple reexports of the same def
+                // using the same path, then we only need one copy
+                if !vec::contains(*v, def) {
+                    *v += [def];
+                }
+              }
               none { e.exp_map.insert(path, @mutable [def]); }
             }
           }