mirror of https://github.com/sbt/sbt.git
set position on parameter references in task/setting macros
This commit is contained in:
parent
2f9d68e869
commit
284cddff70
|
|
@ -308,7 +308,7 @@ object TaskMacro
|
|||
qual.foreach(checkQual)
|
||||
val vd = util.freshValDef(tpe, qual.symbol) // val $x: <tpe>
|
||||
result = Some( (qual, tpe, vd) )
|
||||
val tree = util.refVal(vd) // $x
|
||||
val tree = util.refVal(vd, qual.pos) // $x
|
||||
tree.setPos(qual.pos) // position needs to be set so that wrapKey passes the position onto the wrapper
|
||||
assert(tree.tpe != null, "Null type: " + tree)
|
||||
tree.setType(tpe)
|
||||
|
|
|
|||
|
|
@ -144,11 +144,12 @@ final class ContextUtil[C <: Context](val ctx: C)
|
|||
}
|
||||
|
||||
/** Create a Tree that references the `val` represented by `vd`. */
|
||||
def refVal(vd: ValDef): Tree =
|
||||
def refVal(vd: ValDef, pos: Position): Tree =
|
||||
{
|
||||
val t = Ident(vd.name)
|
||||
assert(vd.tpt.tpe != null, "val type is null: " + vd + ", tpt: " + vd.tpt.tpe)
|
||||
t.setType(vd.tpt.tpe)
|
||||
t.setPos(pos)
|
||||
t
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ object Instance
|
|||
qual.foreach(checkQual)
|
||||
val vd = util.freshValDef(tpe, qual.symbol)
|
||||
inputs ::= new Input(tpe, qual, vd)
|
||||
util.refVal(vd)
|
||||
util.refVal(vd, qual.pos)
|
||||
}
|
||||
def sub(name: String, tpe: Type, qual: Tree): Converted[c.type] =
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue