summaryrefslogtreecommitdiff
path: root/scalalib/src
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-04-08 23:39:40 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2018-04-09 13:20:45 -0700
commitdb8d967d461fb6323fd83c40ef81e26f2d0fa225 (patch)
treecad8bb41b7337f38fed00536498e437c7007ebb9 /scalalib/src
parent41180adbc0d9e67677e9cd5d1dbd25208672d5d5 (diff)
downloadmill-db8d967d461fb6323fd83c40ef81e26f2d0fa225.tar.gz
mill-db8d967d461fb6323fd83c40ef81e26f2d0fa225.tar.bz2
mill-db8d967d461fb6323fd83c40ef81e26f2d0fa225.zip
Get first `caffeine.test` suite running in `CaffeineTests`
Diffstat (limited to 'scalalib/src')
-rw-r--r--scalalib/src/mill/scalalib/Lib.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/scalalib/src/mill/scalalib/Lib.scala b/scalalib/src/mill/scalalib/Lib.scala
index 07d88891..3e06ea37 100644
--- a/scalalib/src/mill/scalalib/Lib.scala
+++ b/scalalib/src/mill/scalalib/Lib.scala
@@ -3,6 +3,7 @@ package scalalib
import java.io.{File, FileInputStream}
import java.lang.annotation.Annotation
+import java.lang.reflect.Modifier
import java.util.zip.ZipInputStream
import javax.tools.ToolProvider
@@ -12,7 +13,6 @@ import coursier.{Cache, Dependency, Fetch, Repository, Resolution}
import mill.Agg
import mill.eval.{PathRef, Result}
import mill.modules.Jvm
-
import mill.util.Ctx
import sbt.testing._
@@ -293,14 +293,18 @@ object Lib{
case f: SubclassFingerprint =>
!cls.isInterface &&
(f.isModule == cls.getName.endsWith("$")) &&
- cl.loadClass(f.superclassName()).isAssignableFrom(cls)
+ cl.loadClass(f.superclassName()).isAssignableFrom(cls) &&
+ cls.getConstructors.count(c => c.getParameterCount == 0 && Modifier.isPublic(c.getModifiers)) == 1
+
case f: AnnotatedFingerprint =>
val annotationCls = cl.loadClass(f.annotationName()).asInstanceOf[Class[Annotation]]
(f.isModule == cls.getName.endsWith("$")) &&
+ cls.getConstructors.count(c => c.getParameterCount == 0 && Modifier.isPublic(c.getModifiers)) == 1 &&
(
cls.isAnnotationPresent(annotationCls) ||
cls.getDeclaredMethods.exists(_.isAnnotationPresent(annotationCls))
)
+
}.map { f => (cls, f) }
}
}