~ubuntu-branches/debian/sid/scala/sid

« back to all changes in this revision

Viewing changes to src/compiler/scala/tools/nsc/doc/model/MemberLookup.scala

  • Committer: Package Import Robot
  • Author(s): Emmanuel Bourg, Mehdi Dogguy, Lucas Satabin, Frank S. Thomas, Emmanuel Bourg
  • Date: 2015-06-05 23:52:59 UTC
  • mfrom: (1.2.11)
  • Revision ID: package-import@ubuntu.com-20150605235259-wk00vgk83dh8o19g
Tags: 2.10.5-1
* Team upload.

[ Mehdi Dogguy ]
* New upstream release (Closes: #744278).

[ Lucas Satabin ]
* Update patches
* Update the clean target
* Update paths of elements to install
* Update watch file

[ Frank S. Thomas ]
* Remove myself from Uploaders.

[ Emmanuel Bourg ]
* The package has been adopted by the Java Team (Closes: #754935)
* Patched the build to avoid downloading libraries from the Internet
* Replaced the minified JavaScript files with unobfuscated ones
* No longer build scala-partest.jar until diffutils is packaged or replaced
* debian/watch: Fixed the versions matched (x.y.z instead of x.y.z..z)
* debian/rules:
  - Added the missing get-orig-source target (Closes: #724704)
  - Improved the clean target
* debian/control:
  - Build depend on scala (>= 2.10) and bnd
  - Use canonical URLs for the Vcs-* fields
  - Standards-Version updated to 3.9.6 (no changes)
* Switch to debhelper level 9

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package scala.tools.nsc
 
2
package doc
 
3
package model
 
4
 
 
5
import base._
 
6
 
 
7
/** This trait extracts all required information for documentation from compilation units */
 
8
trait MemberLookup extends base.MemberLookupBase {
 
9
  thisFactory: ModelFactory =>
 
10
 
 
11
  import global._
 
12
  import definitions.{ NothingClass, AnyClass, AnyValClass, AnyRefClass, ListClass }
 
13
 
 
14
  override def internalLink(sym: Symbol, site: Symbol): Option[LinkTo] =
 
15
    findTemplateMaybe(sym) match {
 
16
      case Some(tpl) => Some(LinkToTpl(tpl))
 
17
      case None =>
 
18
        findTemplateMaybe(site) flatMap { inTpl =>
 
19
          inTpl.members find (_.asInstanceOf[EntityImpl].sym == sym) map (LinkToMember(_, inTpl))
 
20
        }
 
21
    }
 
22
 
 
23
  override def chooseLink(links: List[LinkTo]): LinkTo = {
 
24
    val mbrs = links.collect {
 
25
      case lm@LinkToMember(mbr: MemberEntity, _) => (mbr, lm)
 
26
    }
 
27
    if (mbrs.isEmpty)
 
28
      links.head
 
29
    else
 
30
      mbrs.min(Ordering[MemberEntity].on[(MemberEntity, LinkTo)](_._1))._2
 
31
  }
 
32
 
 
33
  override def toString(link: LinkTo) = link match {
 
34
    case LinkToTpl(tpl: EntityImpl) => tpl.sym.toString
 
35
    case LinkToMember(mbr: EntityImpl, inTpl: EntityImpl) =>
 
36
      mbr.sym.signatureString + " in " + inTpl.sym.toString
 
37
    case _ => link.toString
 
38
  }
 
39
 
 
40
  override def findExternalLink(sym: Symbol, name: String): Option[LinkToExternal] = {
 
41
    val sym1 =
 
42
      if (sym == AnyClass || sym == AnyRefClass || sym == AnyValClass || sym == NothingClass) ListClass
 
43
      else if (sym.isPackage) 
 
44
        /* Get package object which has associatedFile ne null */
 
45
        sym.info.member(newTermName("package"))
 
46
      else sym
 
47
    Option(sym1.associatedFile) flatMap (_.underlyingSource) flatMap { src =>
 
48
      val path = src.path
 
49
      settings.extUrlMapping get path map { url =>
 
50
        LinkToExternal(name, url + "#" + name)
 
51
      }
 
52
    } orElse {
 
53
      // Deprecated option.
 
54
      settings.extUrlPackageMapping find {
 
55
        case (pkg, _) => name startsWith pkg
 
56
      } map {
 
57
        case (_, url) => LinkToExternal(name, url + "#" + name)
 
58
      }
 
59
    }
 
60
  }
 
61
 
 
62
  override def warnNoLink = !settings.docNoLinkWarnings.value
 
63
}