diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-07-25 17:53:44 +0200 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-07-25 17:53:44 +0200 |
commit | 4445615029488503f266f6a83d4ea909087118c3 (patch) | |
tree | 8d2811e691c15c23ef2a960b8531b7240f2d6d04 /src | |
parent | 5a878c2ed86e940bfff4b95b52b356a2c1146bb4 (diff) | |
parent | c4360481251fdec0599598c24da400a8bace3247 (diff) | |
download | scala-4445615029488503f266f6a83d4ea909087118c3.tar.gz scala-4445615029488503f266f6a83d4ea909087118c3.tar.bz2 scala-4445615029488503f266f6a83d4ea909087118c3.zip |
Merge pull request #3894 from adriaanm/depmsg
Better error message than 'bad symbolic reference'.
Diffstat (limited to 'src')
-rw-r--r-- | src/reflect/scala/reflect/internal/pickling/UnPickler.scala | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/reflect/scala/reflect/internal/pickling/UnPickler.scala b/src/reflect/scala/reflect/internal/pickling/UnPickler.scala index b808666360..8d4c3f752f 100644 --- a/src/reflect/scala/reflect/internal/pickling/UnPickler.scala +++ b/src/reflect/scala/reflect/internal/pickling/UnPickler.scala @@ -254,12 +254,13 @@ abstract class UnPickler { // (4) Call the mirror's "missing" hook. adjust(mirrorThatLoaded(owner).missingHook(owner, name)) orElse { // (5) Create a stub symbol to defer hard failure a little longer. - val fullName = s"${owner.fullName}.$name" + val advice = moduleAdvice(s"${owner.fullName}.$name") val missingMessage = - s"""|bad symbolic reference to $fullName encountered in class file '$filename'. - |Cannot access ${name.longString} in ${owner.kindString} ${owner.fullName}. The current classpath may be - |missing a definition for $fullName, or $filename may have been compiled against a version that's - |incompatible with the one found on the current classpath.${moduleAdvice(fullName)}""".stripMargin + s"""|missing or invalid dependency detected while loading class file '$filename'. + |Could not access ${name.longString} in ${owner.kindString} ${owner.fullName}, + |because it (or its dependencies) are missing. Check your build definition for + |missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) + |A full rebuild may help if '$filename' was compiled against an incompatible version of ${owner.fullName}.$advice""".stripMargin owner.newStubSymbol(name, missingMessage) } } |