diff options
Diffstat (limited to 'dottydoc/js/src/model')
-rw-r--r-- | dottydoc/js/src/model/entities.scala | 22 |
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 } } |