Skip to content

fix(harvest): 읽지 못한 cfg_attr 속성 목록 계수 + limitation 보고 - #21

Merged
ictechgy merged 4 commits into
mainfrom
fix/cfg-attr-unparsed
Sep 25, 2026
Merged

ictechgy merged 4 commits into
mainfrom
fix/cfg-attr-unparsed

Conversation

@ictechgy

Copy link
Copy Markdown
Owner

요약

HANDOFF 보류 항목(GLM 리뷰 LOW) split_cfg_attr 미계수를 해소합니다.

split_cfg_attr가 속성 목록의 Meta 파싱 실패를 .ok()?로 삼켜, 안쪽 경로(속성으로만 쓰는 dep의 사용 증거)가 셈 없이 사라졌습니다.

  • split_cfg_attr는 파싱 결과를 syn::Result로 넘긴다
  • collect_attr_refs/collect_meta_refs가 실패 수를 반환 → decls/impls가 Harvest.unparsed_attrs에 더함 (파라미터 증가·타입 변경 없음)
  • 0이 아니면 전용 limitation: N cfg_attr attribute lists could not be parsed; paths inside them are not counted as references (0이면 조용)

unresolved_paths에 섞지 않은 이유

그 문구는 "외부 크레이트·prelude·매크로 생성 이름"을 설명해 이 원인을 가립니다.

실제 발생 범위

syn 2.0.119는 Rust 2024 unsafe(...) 속성도 Meta로 받습니다(탐침 확인). 실패는 rustc도 거부하는 입력에서만 납니다 — 드물지만 에러를 삼키지 않는다는 규칙상 계수합니다.

범위 밖

deps 보고서는 harvest limitation을 싣지 않습니다(기존 unresolved_paths도 동일). 필요하면 별도 설계로.

검증

  • 단위: 최상위·중첩 실패 2건 계수, 정상 목록은 그대로 수확 / 통합: 임시 크레이트에서 limitation 출력, 정상 fixture는 조용
  • 세 분기(최상위·중첩 계수, limitation 출력) 각각 뮤테이션 → 테스트 실패 확인(비공허)
  • cargo test 133 통과, --features semantic 47 통과, 커버리지 92.66%
  • clippy 클린, fmt 정규, verify-cli-contract OK, 자기 분석 rules/cycles --strict 0 (syn·semantic)

🤖 Generated with Claude Code

ictechgy and others added 4 commits September 25, 2026 21:42
split_cfg_attr가 속성 목록의 Meta 파싱 실패를 `.ok()?`로 삼켜
안쪽 경로가 셈 없이 사라졌다 — 속성으로만 쓰는 dep이 있으면 그
증거가 조용히 유실된다. 파싱 결과를 Result로 넘기고, 수집기가
실패 수를 돌려주면 decls/impls가 Harvest.unparsed_attrs에 더한다.
0이 아니면 전용 limitation 한 줄을 낸다(0이면 조용).

unresolved_paths에 섞지 않은 이유: 그 문구는 외부 크레이트·prelude·
매크로 생성 이름을 설명하므로 이 원인을 가린다. syn 2.0.119는
`unsafe(...)` 속성도 Meta로 받으므로 실제로는 rustc도 거부하는
입력에서만 나는 경로다 — GLM 리뷰 보류 항목(LOW)을 닫는다.
단위·통합 테스트 모두 계수·보고 분기를 뮤테이션으로 비공허 확인.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
전용 카운터로 해소된 LOW 항목을 보류 목록에서 내리고, 검증 수치를
이 브랜치 재측정값(테스트 133, 커버리지 92.66%)으로 갱신한다.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
PR #17~#21 경과, v0.3.0 배포 절차, 효과 있던 검증 방식(뮤테이션·
체크섬 대조)과 반복하지 말 함정(zsh 단어 분리·로컬 main 뒤처짐)을
적어 다음 세션이 HANDOFF만 읽고 이어받게 한다.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
머지와 함께 참이 되도록 미머지·승인 대기 문구를 머지됨으로 바꾸고
다음 단계 번호를 정리한다.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@ictechgy
ictechgy merged commit aeda46b into main Sep 25, 2026
1 check passed
@ictechgy
ictechgy deleted the fix/cfg-attr-unparsed branch September 25, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant