(Sorry for taking so long to reply, it took me a while to get back to this since I went on vacation).
Yes, the compiler parses both branches and the conditional is represented in the AST. However, I think there's still a cycle in the hypothetical implementation of this because type checking involves being able to walk the AST, and in order to walk the nodes in the AST representing these conditions you need to know whether the condition is active or not, which again requires type checking. I wouldn't be surprised if this were solvable but I do think it makes the endeavor tricky and may imply that there are some important limitations or edge cases to consider.