-
Notifications
You must be signed in to change notification settings - Fork 939
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compiler crash when .value, etc... used outside of task macro #1031
Comments
ghost
assigned harrah
Dec 7, 2013
retronym
added a commit
to retronym/sbt
that referenced
this issue
Jan 28, 2014
Untyped trees underneath typed trees makes Jack and sad boy. And they make superaccessors a sad phase. The recent refactoring to retain original types in the trees representing the argument to the task macro meant that the `value` macro also was changed to try to avoid this untyped-under-typed problem. However, it didn't go deep enough, and left the child trees of the placeholder tree `InputWrapper.wrap[T](key)` untyped. This commit uses `c.typeCheck` to locally typeheck that tree fully instead. Fixes sbt#1031
retronym
added a commit
to retronym/sbt
that referenced
this issue
Jan 28, 2014
Untyped trees underneath typed trees makes Jack and sad boy. And they make superaccessors a sad phase. The recent refactoring to retain original types in the trees representing the argument to the task macro meant that the `value` macro also was changed to try to avoid this untyped-under-typed problem. However, it didn't go deep enough, and left the child trees of the placeholder tree `InputWrapper.wrap[T](key)` untyped. This commit uses `c.typeCheck` to locally typeheck that tree fully instead. Fixes sbt#1031
@harrah If I remove the
|
eed3si9n
pushed a commit
to eed3si9n/sbt
that referenced
this issue
Mar 21, 2014
Untyped trees underneath typed trees makes Jack and sad boy. And they make superaccessors a sad phase. The recent refactoring to retain original types in the trees representing the argument to the task macro meant that the `value` macro also was changed to try to avoid this untyped-under-typed problem. However, it didn't go deep enough, and left the child trees of the placeholder tree `InputWrapper.wrap[T](key)` untyped. This commit uses `c.typeCheck` to locally typeheck that tree fully instead. Fixes sbt#1031
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
This was caused by the removal of
resetLocalAttrs
. When.value, etc...
are used properly, the task/setting macros remove them as part of macro expansion. When they are not removed, they survive beyond typers. Therefore, problems with untyped trees from the.value
-like macros are only exposed when used in the wrong context.The text was updated successfully, but these errors were encountered: