aboutsummaryrefslogtreecommitdiff
path: root/dottydoc/js/src/model/entities.scala
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-08-06 20:53:15 +0200
committerFelix Mulder <felix.mulder@gmail.com>2016-08-19 15:37:33 +0200
commit922788ac39f7538b79b58c326bd22c641a8e2490 (patch)
treec24de6db3dc8536a7aadc72d569a3212fcafe9f2 /dottydoc/js/src/model/entities.scala
parent94dd0bccbb68618bc668c6005316d6930ae26069 (diff)
downloaddotty-922788ac39f7538b79b58c326bd22c641a8e2490.tar.gz
dotty-922788ac39f7538b79b58c326bd22c641a8e2490.tar.bz2
dotty-922788ac39f7538b79b58c326bd22c641a8e2490.zip
Add info on where implicitly added members originate from
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
}
}