코드 색인
rustc에는 중요한 자료 구조가 많습니다. 이 문서는 컴파일러의 핵심 자료 구조 몇 가지를 더 자세히 알아보려면 어디를 참고하면 되는지 안내하기 위한 것입니다.
| 항목 | 종류 | 간단한 설명 | 장 | 선언 |
|---|---|---|---|---|
BodyId | 구조체 | 네 가지 HIR 노드 식별자 유형 중 하나 | HIR의 식별자 | compiler/rustc_hir/src/hir.rs |
Compiler | 구조체 | 컴파일러 세션을 나타내며 컴파일을 구동하는 데 사용할 수 있습니다. | Rustc 드라이버와 인터페이스 | compiler/rustc_interface/src/interface.rs |
ast::Crate | 구조체 | 파싱된 크레이트의 구문 수준 표현 | 파서 | compiler/rustc_ast/src/ast.rs |
hir::Crate | 구조체 | 크레이트 AST를 더 추상적이고 컴파일러가 다루기 쉬운 형태로 표현한 것 | HIR | compiler/rustc_middle/src/hir/mod.rs |
DefId | 구조체 | 네 가지 HIR 노드 식별자 유형 중 하나 | HIR의 식별자 | compiler/rustc_hir/src/def_id.rs |
Diag | 구조체 | 오류나 린트 같은 컴파일러 진단을 나타내는 구조체입니다 | 진단 내보내기 | compiler/rustc_errors/src/diagnostic.rs |
DocContext | 구조체 | rustdoc이 크레이트를 탐색하며 문서를 수집할 때 사용하는 상태 컨테이너입니다 | Rustdoc | src/librustdoc/core.rs |
HirId | 구조체 | 네 가지 HIR 노드 식별자 타입 중 하나입니다 | HIR의 식별자 | compiler/rustc_hir_id/src/lib.rs |
Lexer | 구조체 | 파싱 중에 사용되는 렉서입니다. 컴파일 중인 원본 소스 코드에서 문자를 읽어 들여, 파서의 나머지 부분에서 사용할 일련의 토큰을 생성합니다 | 파서 | compiler/rustc_parse/src/lexer/mod.rs |
NodeId | 구조체 | 네 가지 HIR 노드 식별자 타입 중 하나입니다. 단계적으로 폐지되고 있습니다 | HIR의 식별자 | compiler/rustc_ast/src/ast.rs |
ParamEnv | 구조체 | 제네릭 매개변수나 Self에 관한 정보로, 연관 항목이나 제네릭 항목을 다룰 때 유용합니다 | 매개변수 환경 | compiler/rustc_middle/src/ty/mod.rs |
ParseSess | 구조체 | 이 구조체는 파싱 세션에 관한 정보를 담고 있습니다 | 파서 | compiler/rustc_session/src/parse/parse.rs |
Rib | 구조체 | 이름의 단일 스코프를 나타냅니다 | 이름 해석 | compiler/rustc_resolve/src/lib.rs |
Session | 구조체 | 컴파일 세션과 연관된 데이터입니다 | 파서, Rustc 드라이버와 인터페이스 | compiler/rustc_session/src/session.rs |
SourceFile | 구조체 | SourceMap의 일부입니다. 단일 소스 파일에 대해 AST 노드를 해당 소스 코드에 매핑합니다. 이전에는 FileMap이라고 불렸습니다 | 파서 | compiler/rustc_span/src/lib.rs |
SourceMap | 구조체 | AST 노드를 해당 소스 코드에 매핑합니다. 여러 SourceFile로 구성됩니다. 이전에는 CodeMap이라고 불렸습니다 | 파서 | compiler/rustc_span/src/source_map.rs |
Span | 구조체 | 사용자 소스 코드 내의 위치로, 주로 오류 보고에 사용됩니다 | 진단 메시지 내보내기 | compiler/rustc_span/src/span_encoding.rs |
rustc_ast::token_stream::TokenStream | 구조체 | TokenTree들로 구성된 추상적인 토큰 시퀀스입니다 | 파서, 매크로 확장 | compiler/rustc_ast/src/tokenstream.rs |
TraitDef | 구조체 | 이 구조체는 트레이트의 정의를 타입 정보와 함께 담고 있습니다 | ty 모듈 | compiler/rustc_middle/src/ty/trait_def.rs |
TraitRef | 구조체 | 트레이트와 그 입력 타입의 조합입니다(예: P0: Trait<P1...Pn>) | 트레이트 해결: 목표와 절 | compiler/rustc_middle/src/ty/sty.rs |
Ty<'tcx> | 구조체 | 타입 검사에 사용되는 타입의 내부 표현입니다 | 타입 검사 | compiler/rustc_middle/src/ty/mod.rs |
TyCtxt<'tcx> | 구조체 | “타이핑 컨텍스트“입니다. 이것은 컴파일러의 중심 자료 구조입니다. 온갖 종류의 쿼리를 수행할 때 사용하는 컨텍스트입니다 | ty 모듈 | compiler/rustc_middle/src/ty/context.rs |