diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2016-06-19 14:12:13 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2016-06-21 11:23:03 +0200 |
commit | e4c2d68fcf2aebe062faf2bdad08e07704b66d9a (patch) | |
tree | 5e1ba660b36a285e50652883bca96e7514fe592b /src/scaladoc/scala/tools | |
parent | b3283669e05dc706274e944ffd3750892c16e4dd (diff) | |
parent | aaf7bc0b948ee073934885f8240193a4ba2b3bb8 (diff) | |
download | scala-e4c2d68fcf2aebe062faf2bdad08e07704b66d9a.tar.gz scala-e4c2d68fcf2aebe062faf2bdad08e07704b66d9a.tar.bz2 scala-e4c2d68fcf2aebe062faf2bdad08e07704b66d9a.zip |
Merge commit 'aaf7bc0' into merge-2.11-to-2.12-june-19
Diffstat (limited to 'src/scaladoc/scala/tools')
-rw-r--r-- | src/scaladoc/scala/tools/nsc/doc/model/MemberLookup.scala | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/scaladoc/scala/tools/nsc/doc/model/MemberLookup.scala b/src/scaladoc/scala/tools/nsc/doc/model/MemberLookup.scala index 20aaab29fc..ebf3be4ce2 100644 --- a/src/scaladoc/scala/tools/nsc/doc/model/MemberLookup.scala +++ b/src/scaladoc/scala/tools/nsc/doc/model/MemberLookup.scala @@ -44,8 +44,22 @@ trait MemberLookup extends base.MemberLookupBase { /* Get package object which has associatedFile ne null */ sym.info.member(newTermName("package")) else sym - Option(sym1.associatedFile) flatMap (_.underlyingSource) flatMap { src => - val path = src.canonicalPath + def classpathEntryFor(s: Symbol): Option[String] = { + Option(s.associatedFile).flatMap(_.underlyingSource).map { src => + val path = src.canonicalPath + if(path.endsWith(".class")) { // Individual class file -> Classpath entry is root dir + var nesting = s.ownerChain.count(_.hasPackageFlag) + if(nesting > 0) { + val p = 0.until(nesting).foldLeft(src) { + case (null, _) => null + case (f, _) => f.container + } + if(p eq null) path else p.canonicalPath + } else path + } else path // JAR file (and fallback option) + } + } + classpathEntryFor(sym1) flatMap { path => settings.extUrlMapping get path map { url => LinkToExternal(name, url + "#" + name) } |