aboutsummaryrefslogtreecommitdiff
path: root/dottydoc/js/src/model/entities.scala
diff options
context:
space:
mode:
Diffstat (limited to 'dottydoc/js/src/model/entities.scala')
-rw-r--r--dottydoc/js/src/model/entities.scala22
1 files changed, 20 insertions, 2 deletions
diff --git a/dottydoc/js/src/model/entities.scala b/dottydoc/js/src/model/entities.scala
index 4ae76c58c..49d0ec005 100644
--- a/dottydoc/js/src/model/entities.scala
+++ b/dottydoc/js/src/model/entities.scala
@@ -82,13 +82,23 @@ trait ParamList extends sjs.Object {
trait Def extends Entity with Modifiers with ReturnValue {
val typeParams: sjs.Array[String]
val paramLists: sjs.Array[ParamList]
+ val implicitlyAddedFrom: sjs.UndefOr[Reference]
}
@ScalaJSDefined
-trait Val extends Entity with Modifiers
+trait Val extends Entity with Modifiers {
+ val implicitlyAddedFrom: sjs.UndefOr[Reference]
+}
+
+@ScalaJSDefined
+trait Var extends Entity with Modifiers {
+ val implicitlyAddedFrom: sjs.UndefOr[Reference]
+}
@ScalaJSDefined
-trait Var extends Entity with Modifiers
+trait ImplicitlyAddedEntity extends Entity {
+ val implicitlyAddedFrom: sjs.UndefOr[Reference]
+}
object ops {
val EntitiesWithModifiers =
@@ -140,5 +150,13 @@ object ops {
def isPrivate: Boolean =
hasModifiers &&
ent.asInstanceOf[Modifiers].modifiers.contains("private")
+
+ def addedImplicitly: Boolean = (ent.kind == "def" || ent.kind == "val") && {
+ ent.asInstanceOf[ImplicitlyAddedEntity].implicitlyAddedFrom.isDefined
+ }
+
+ def foldImplicitlyAdded[B](f: Reference => B): sjs.UndefOr[B] =
+ if (ent.kind == "def" || ent.kind == "val") ent.asInstanceOf[ImplicitlyAddedEntity].implicitlyAddedFrom.map(f)
+ else sjs.undefined
}
}