resolve: Add some comments to the main modules
This commit is contained in:
parent
310ee4d98c
commit
aca1353240
5 changed files with 26 additions and 3 deletions
|
@ -1,7 +1,9 @@
|
|||
//! Reduced graph building.
|
||||
//! After we obtain a fresh AST fragment from a macro, code in this module helps to integrate
|
||||
//! that fragment into the module structures that are already partially built.
|
||||
//!
|
||||
//! Here we build the "reduced graph": the graph of the module tree without
|
||||
//! any imports resolved.
|
||||
//! Items from the fragment are placed into modules,
|
||||
//! unexpanded macros in the fragment are visited and registered.
|
||||
//! Imports are also considered items and placed into modules here, but not resolved yet.
|
||||
|
||||
use crate::macros::{LegacyBinding, LegacyScope};
|
||||
use crate::resolve_imports::ImportDirective;
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
//! "Late resolution" is the pass that resolves most of names in a crate beside imports and macros.
|
||||
//! It runs when the crate is fully expanded and its module structure is fully built.
|
||||
//! So it just walks through the crate and resolves all the expressions, types, etc.
|
||||
//!
|
||||
//! If you wonder why there's no `early.rs`, that's because it's split into three files -
|
||||
//! `build_reduced_graph.rs`, `macros.rs` and `resolve_imports.rs`.
|
||||
|
||||
use GenericParameters::*;
|
||||
use RibKind::*;
|
||||
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
//! This crate is responsible for the part of name resolution that doesn't require type checker.
|
||||
//!
|
||||
//! Module structure of the crate is built here.
|
||||
//! Paths in macros, imports, expressions, types, patterns are resolved here.
|
||||
//! Label names are resolved here as well.
|
||||
//!
|
||||
//! Type-relative name resolution (methods, fields, associated items) happens in `librustc_typeck`.
|
||||
//! Lifetime names are resolved in `librustc/middle/resolve_lifetime.rs`.
|
||||
|
||||
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/")]
|
||||
|
||||
#![feature(crate_visibility_modifier)]
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
//! A bunch of methods and structures more or less related to resolving macros and
|
||||
//! interface provided by `Resolver` to macro expander.
|
||||
|
||||
use crate::{AmbiguityError, AmbiguityKind, AmbiguityErrorMisc, Determinacy};
|
||||
use crate::{CrateLint, Resolver, ResolutionError, Scope, ScopeSet, ParentScope, Weak};
|
||||
use crate::{ModuleKind, NameBinding, PathResult, Segment, ToNameBinding};
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
//! A bunch of methods and structures more or less related to resolving imports.
|
||||
|
||||
use ImportDirectiveSubclass::*;
|
||||
|
||||
use crate::{AmbiguityError, AmbiguityKind, AmbiguityErrorMisc};
|
||||
|
|
Loading…
Add table
Reference in a new issue