메아리 저널

연구실에서의 개삽질​

<lifthrasiir>
크아앗ㅊㅁ열팟마팔엿ㅏ!!!
<d****>
lifthrasiir, 열팟 마팔엿!
<lifthrasiir>
어제 밤새도록 삽질하고 끝내 미팅까지 날리는 수모를 겪게 만든 삽질이
<lifthrasiir>
어처구니 없이 해결되었어!
<d*********>
''?
<k****>
미팅을 안하셨으니
<k****>
좋은거군요
<d*********>
ㅋㅋㅋㅋㅋ
<lifthrasiir>
k****, 아니죠 follow-up을 해야죠 -_-
<lifthrasiir>
뭐 저는 미팅에 부담을 가지는 사람은 아니지만 (연구실 한정)
<k****>
(가지는 사람)
<d*********>
(여자랑은.. )
<lifthrasiir>
회사에서의 미팅은 귀찮죠
<lifthrasiir>
...
<lifthrasiir>
어쨌든
<lifthrasiir>
AST node랑 runtime type이랑 섞이면서 굉장히 미친듯이 꼬이는 문제를
<lifthrasiir>
잡았습니다.
<k****>
ㅊㅋ
<lifthrasiir>
...AST node 어딘가에 runtime type으로 변환해 주는 게 있더군요
<d*********>
ㅋㅋㅋ
<lifthrasiir>
없는 줄 알았는데 disambiguation 과정에서 만들어 줌
<lifthrasiir>
이걸 내가 몰랐다니
<d*********>
열심히 찾으려고 했는데 원래 다 있는거죠.
<d*********>
-.-;;
<lifthrasiir>
꼭 그런 거는 아닌데
<lifthrasiir>
정말... 안 보이는 곳에 박혀 있어서
<d*********>
lifthrasiir: 원래 이상형은 정말 안보이는곳에 박혀 있는법이죠 (응?)
<lifthrasiir>
정확히 말하면 Type이 있고 (AST node) FType이 있는데 (runtime type)
<lifthrasiir>
평소에는 FType만 가지고 놀면 참 좋겠는데 generic type에 인자를 끼워 넣으려면 Type을 써야 함
<lifthrasiir>
근데 trait type 같은 건... Type을 제대로 만들어야 하잖아요?
<lifthrasiir>
예를 들어서 어떤 api(module의 개념) A에 있는 T라는 타입을 api B의 X[\...\]에서 쓸 경우
<d*********>
<lifthrasiir>
근데 api A가 B에서는 안 보일 경우
<lifthrasiir>
api name을 다 갖다 집어 넣어야 하는데 이게 안 보임
<d*********>
-.-;;;;
<lifthrasiir>
아무리 뒤져 봐도 X[\...\]에 대응하는 declaration node에서 "X"를 반환하는 건 있는데 "B"를 반환하는 건 없음;
<lifthrasiir>
그래서 뭔가 더 없나 하고 AST node dump를 떠 봤는데
<lifthrasiir>
SelfType이라는 게 보이는 거에요 (기본적으로 이건 declaration에서 self라는 키워드의 타입을 결정하는...)
<lifthrasiir>
거기에 api name도 반환하는 게 있어서 옳다구나 하고 쓰려다가
<lifthrasiir>
잠시 위화감이 들어서 출력을 다시 읽어 보니 selfType이 반환하는 값 자체가 Type임
<lifthrasiir>
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
<lifthrasiir>
시발 나 뭐 한 거야
<d*********>
ㅋㅋ

텀블러를 씁니다.