diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-02-23 21:06:12 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-02-23 21:52:41 -0800 |
| commit | 9982a2a8416cb263f875e5cec7a5c5b6e2b7b1fe (patch) | |
| tree | 7fdbe4c99c1dcac99a88d13426e65e0cb95d5184 /src/comp | |
| parent | cb7022cfc20b89947ff3fa96d4617f9fe64d2f3e (diff) | |
rustc: Don't add duplicate entries to exp_map
Diffstat (limited to 'src/comp')
| -rw-r--r-- | src/comp/middle/resolve.rs | 8 |
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]); } } } |
