You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As stated in sbt#114, some types don't need to be declared lazy and
had been strictly computed in the dotty bridge. Those commits are an
attempt at backporting those observations in Zinc itself.
This commit removes the laziness of ClassLike.selfType.
The new test `circular-self-type` should prevent regressions.
ttreyer
added a commit
to ttreyer/zinc
that referenced
this issue
May 17, 2017
As stated in sbt#114, some types don't need to be declared lazy and
had been strictly computed in the dotty bridge. Those commits are an
attempt at backporting those observations in Zinc itself.
This commit removes the laziness of ClassLike.selfType.
The new test `circular-self-type` should prevent regressions.
In https://github.com/sbt/zinc/blob/1.0/internal/compiler-interface/src/main/contraband/type.json and https://github.com/sbt/zinc/blob/1.0/internal/compiler-interface/src/main/contraband/definition.json many types are declared lazy, but it seems that only
Structure#inherited
really needs to be lazy (because a class might contain itself as an inherited member:class A { class B extends A }
. I think thatClassLike#selfType
,ClassLike#structure
, andStructure#declared
can be made strict (or at least, I was able to compute them strictly in the dotty compiler bridge and not blow up anything).The text was updated successfully, but these errors were encountered: