diff options
| author | Rafael Ávila de Espíndola <[email protected]> | 2011-01-18 15:23:11 -0500 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-01-18 15:43:13 -0800 |
| commit | 41b7d6d74da54b80419ab093303dd356fae957ec (patch) | |
| tree | c382e32f867eae4b42aae8a9dcb8882e198211bf /src/comp/front/parser.rs | |
| parent | Add bzero glue and preliminary code for dynamic size/align calculations. (diff) | |
| download | rust-41b7d6d74da54b80419ab093303dd356fae957ec.tar.xz rust-41b7d6d74da54b80419ab093303dd356fae957ec.zip | |
One last refactoring of the import handling:
* Create an import resolving stage. Currently this involves a copy of the ast,
we can probably revisit this once we revisit doing full copies of the ast in
general.
* Don't repeat work. Once we resolve a import, put it on a hash table and use
it next time we are asked for it. This solves a O(n^2) behaviour in
degenerated cases.
* Once import resolution is done, the target of an import is stored on the
import itself.
Diffstat (limited to 'src/comp/front/parser.rs')
| -rw-r--r-- | src/comp/front/parser.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index c44da8f1..0e8d1dc7 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -1704,7 +1704,8 @@ impure fn parse_rest_import_name(parser p, ast.ident id) -> @ast.view_item { identifiers += i; } p.bump(); - auto import_decl = ast.view_item_import(identifiers, p.next_def_id()); + auto import_decl = ast.view_item_import(identifiers, p.next_def_id(), + none[ast.def]); ret @spanned(lo, hi, import_decl); } |