mirror of https://github.com/sbt/sbt.git
[2.x] Update Eval.compileAndLoad (#9583)
This commit is contained in:
parent
784d116bd4
commit
a6ae53c73e
|
|
@ -278,19 +278,37 @@ class Eval(
|
||||||
case template: tpd.Template =>
|
case template: tpd.Template =>
|
||||||
template.body.foreach {
|
template.body.foreach {
|
||||||
case defdef: tpd.DefDef if defdef.name.mangledString == WrapValName =>
|
case defdef: tpd.DefDef if defdef.name.mangledString == WrapValName =>
|
||||||
defdef.rhs match {
|
PartialFunction
|
||||||
case tpd.Block(
|
.condOpt(defdef.rhs) {
|
||||||
(typeDef: tpd.TypeDef) :: Nil,
|
case tpd.Block(
|
||||||
ast.untpd.Literal(Constants.Constant(()))
|
(typeDef: tpd.TypeDef) :: Nil,
|
||||||
) =>
|
ast.untpd.Literal(Constants.Constant(()))
|
||||||
|
) =>
|
||||||
|
// class
|
||||||
|
typeDef.sourcePos
|
||||||
|
case tpd.Block(
|
||||||
|
(valDef: tpd.ValDef) :: (typeDef: tpd.TypeDef) :: Nil,
|
||||||
|
ast.untpd.Literal(Constants.Constant(()))
|
||||||
|
) if valDef.tpt.tpe =:= typeDef.tpe =>
|
||||||
|
// object
|
||||||
|
typeDef.sourcePos
|
||||||
|
case tpd.Block(
|
||||||
|
(typeDef1: tpd.TypeDef) :: (valDef: tpd.ValDef) :: (typeDef2: tpd.TypeDef) :: Nil,
|
||||||
|
ast.untpd.Literal(Constants.Constant(()))
|
||||||
|
)
|
||||||
|
if (valDef.tpt.tpe =:= typeDef2.tpe) && (s"${typeDef1.name.mangledString}${NameTransformer.MODULE_SUFFIX_STRING}" ==
|
||||||
|
typeDef2.name.mangledString) =>
|
||||||
|
// enum, case class
|
||||||
|
typeDef1.sourcePos
|
||||||
|
}
|
||||||
|
.foreach { pos =>
|
||||||
reporter.report(
|
reporter.report(
|
||||||
Diagnostic.Error(
|
Diagnostic.Error(
|
||||||
"Defining types in *.sbt file is not supported",
|
"Defining types in *.sbt file is not supported",
|
||||||
typeDef.sourcePos
|
pos
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
case _ =>
|
}
|
||||||
}
|
|
||||||
case _ =>
|
case _ =>
|
||||||
}
|
}
|
||||||
case _ =>
|
case _ =>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue