Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

AST 검증

AST 검증은 트리의 각 항목을 방문하여 간단한 검사를 수행하는 별도의 AST 패스입니다. 이 패스는 복잡한 분석, 타입 검사, 이름 해석을 전혀 수행하지 않습니다.

컴파일러는 검증을 수행하기 전에 먼저 매크로를 확장합니다. 그다음 이 패스는 각 AST 항목이 올바른 상태인지 확인하는 검증을 수행합니다. 그리고 이 패스가 끝나면 컴파일러는 크레이트 해석 패스를 실행합니다.

검증

검증은 AstValidator 타입에 정의되어 있으며, 이 타입은 rustc_ast_passes 크레이트에 있습니다. 이 타입은 특정 언어 규칙을 어겼을 때 오류를 내보내는 다양한 간단한 검사를 구현합니다.

또한 AstValidator는 AST 항목(함수, 트레이트, 열거형 등)을 방문하는 방법을 정의하는 Visitor 트레이트를 구현합니다.

방문자는 각 항목에 대해 특정한 검사를 수행합니다. 예를 들어 AstValidator는 함수 선언을 방문할 때 해당 함수가 다음 조건을 만족하는지 검사합니다.

  • 매개변수가 u16::MAX개를 넘지 않습니다.
  • C 가변 인자가 선언의 마지막에 옵니다.
  • 문서 주석이 함수 매개변수에 적용되지 않습니다.
  • 그 밖의 검증도 수행합니다.