Commits

Daniel Duan committed 5242b674760
[Sema] implement better type circularity check Certain type circularities weren't being checked until this point. Such as ``` struct X<T> { let a: X<X> } struct Y<T> { let a: (Int, Y<Y>) } enum Z<T> { case A(Optional<Z<Z>>) } ``` We introduce a more comprehensive approach to detect these in type checker. After name lookup, exam each value field in declared structs and enums for self-reference types that creates inifinite sizes.