컴파일 중간에 끼어들어 화면 후보를 모은다

컴파일 중간에 끼어들어 화면 후보를 모은다 An architecture diagram generated by Archify. Kotlin 소스 · 모듈·생성 소스 포함 · Architecture component Kotlin 소스 모듈·생성 소스 포함 FIR 단계 · 이름·호출·타입 해석 · Kotlin 컴파일러 FIR 단계 이름·호출·타입 해석 IR 단계 · 해석이 끝난 코드 트리 · Kotlin 컴파일러 IR 단계 해석이 끝난 코드 트리 lowering·바이트코드 · 단순한 형태로 변환 · Kotlin 컴파일러 lowering·바이트코드 단순한 형태로 변환 전체 선언 수집 · 모든 Composable · APM 컴파일러 플러그인 전체 선언 수집 모든 Composable UI 진입점 추적 · setContent 등에서 출발 · APM 컴파일러 플러그인 UI 진입점 추적 setContent 등에서 출발 탐색 등록 연결 · 키 → 화면 콘텐츠 · APM 컴파일러 플러그인 탐색 등록 연결 키 → 화면 콘텐츠 모듈별 목록 · 선언·관계·진단 · Architecture component 모듈별 목록 선언·관계·진단 프로젝트 병합 · 모듈·DI·타입 연결 · Architecture component 프로젝트 병합 모듈·DI·타입 연결 분류 · 화면·상태·미해결 · Architecture component 분류 화면·상태·미해결 파싱 IR 생성 이후 변환 근거와 함께 Kotlin 컴파일러 APM 컴파일러 플러그인

IR에서 읽는 이유

  • • 호출 대상과 타입이 이미 확정돼 있다
  • • 함수 본문과 람다까지 남아 있다

못 찾은 것도 남긴다

  • • 연결을 못 푼 선언은 미해결로 보존
  • • 실행해 봐야 아는 값은 미해결 사유로 기록