Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

scala.tools.nsc.symtab.Types$$TypeError: ambiguous reference to overloaded definition #2969

Closed
scabug opened this issue Jan 26, 2010 · 6 comments

Comments

@scabug
Copy link

scabug commented Jan 26, 2010

I get the below error with my project Kontur, in revision 3dfbc634f6b25e2389114da929fe7f3f2c8b5970 as downloadable from

http://github.com/Sciss/Kontur/tree/3dfbc634f6b25e2389114da929fe7f3f2c8b5970

i have attached the contents of the library folder, so in order to reproduce the crash, you can copy them there and run ./compile.sh (set $$SCALA_HOME before)

$$ scalac -version
Scala compiler version 2.8.0.r20669-b20100126020233 -- Copyright 2002-2010, LAMP/EPFL

$$ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) Client VM (build 14.3-b01-101, mixed mode)

the full error dump:

Exception in thread "main" scala.tools.nsc.symtab.Types$$TypeError: ambiguous reference to overloaded definition,
both value de$$sciss$$kontur$$gui$$DefaultTrackComponent$$DefaultPainter$$$$$$outer in object DefaultPainter of type ()DefaultTrackComponent.this.type
and value de$$sciss$$kontur$$gui$$DefaultTrackComponent$$DefaultPainter$$$$$$outer in object DefaultPainter of type ()de.sciss.kontur.gui.DefaultTrackComponent
match expected type ?
at scala.tools.nsc.typechecker.Contexts$$Context.ambiguousError(Contexts.scala:342)
at scala.tools.nsc.typechecker.Infer$$Inferencer$$$$anonfun$$inferExprAlternative$$1.apply(Infer.scala:1662)
at scala.tools.nsc.typechecker.Infer$$Inferencer$$$$anonfun$$inferExprAlternative$$1.apply(Infer.scala:1626)
at scala.tools.nsc.typechecker.Infer$$Inferencer.tryTwice(Infer.scala:1773)
at scala.tools.nsc.typechecker.Infer$$Inferencer.inferExprAlternative(Infer.scala:1626)
at scala.tools.nsc.typechecker.Typers$$Typer.adapt(Typers.scala:793)
at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4092)
at scala.tools.nsc.typechecker.Typers$$Typer.typedType(Typers.scala:4190)
at scala.tools.nsc.typechecker.Typers$$Typer.typedType(Typers.scala:4193)
at scala.tools.nsc.typechecker.Typers$$Typer.typedDefDef(Typers.scala:1807)
at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3751)
at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4087)
at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:4140)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.typedPos(TypingTransformers.scala:25)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.mixinOuterAccessorDef(ExplicitOuter.scala:327)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer$$$$anonfun$$transform$$2$$$$anonfun$$apply$$3.apply(ExplicitOuter.scala:425)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer$$$$anonfun$$transform$$2$$$$anonfun$$apply$$3.apply(ExplicitOuter.scala:423)
at scala.collection.LinearSeqLike$$class.foreach(LinearSeqLike.scala:97)
at scala.collection.immutable.List.foreach(List.scala:46)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer$$$$anonfun$$transform$$2.apply(ExplicitOuter.scala:423)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer$$$$anonfun$$transform$$2.apply(ExplicitOuter.scala:416)
at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1580)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:37)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.transform(ExplicitOuter.scala:415)
at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:1556)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:1446)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:1445)
at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1580)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:37)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:30)
at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:1444)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.transform(TypingTransformers.scala:52)
at scala.tools.nsc.transform.ExplicitOuter$$OuterPathTransformer.transform(ExplicitOuter.scala:230)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.transform(ExplicitOuter.scala:482)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1572)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1570)
at scala.collection.immutable.List.loop$$1(List.scala:116)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.collection.immutable.List.loop$$1(List.scala:120)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:1570)
at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:1476)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.scala$$tools$$nsc$$transform$$TypingTransformers$$TypingTransformer$$$$super$$transform(TypingTransformers.scala:48)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer$$$$anonfun$$transform$$1.apply(TypingTransformers.scala:48)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer$$$$anonfun$$transform$$1.apply(TypingTransformers.scala:48)
at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1580)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:37)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:30)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.transform(TypingTransformers.scala:48)
at scala.tools.nsc.transform.ExplicitOuter$$OuterPathTransformer.transform(ExplicitOuter.scala:230)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.transform(ExplicitOuter.scala:428)
at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:1556)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:1446)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:1445)
at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1580)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:37)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:30)
at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:1444)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.transform(TypingTransformers.scala:52)
at scala.tools.nsc.transform.ExplicitOuter$$OuterPathTransformer.transform(ExplicitOuter.scala:230)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.transform(ExplicitOuter.scala:482)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1572)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1570)
at scala.collection.immutable.List.loop$$1(List.scala:116)
at scala.collection.immutable.List.mapConserve(List.scala:133)
at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:1570)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$1.apply(Trees.scala:1440)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$1.apply(Trees.scala:1440)
at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1580)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:37)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:30)
at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:1439)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.scala$$tools$$nsc$$transform$$TypingTransformers$$TypingTransformer$$$$super$$transform(TypingTransformers.scala:48)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer$$$$anonfun$$transform$$2.apply(TypingTransformers.scala:50)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer$$$$anonfun$$transform$$2.apply(TypingTransformers.scala:50)
at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1580)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:37)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:30)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.transform(TypingTransformers.scala:50)
at scala.tools.nsc.transform.ExplicitOuter$$OuterPathTransformer.transform(ExplicitOuter.scala:230)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.transform(ExplicitOuter.scala:482)
at scala.tools.nsc.ast.Trees$$Transformer.transformUnit(Trees.scala:1573)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.scala$$tools$$nsc$$transform$$ExplicitOuter$$ExplicitOuterTransformer$$$$super$$transformUnit(ExplicitOuter.scala:492)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer$$$$anonfun$$transformUnit$$1.apply(ExplicitOuter.scala:492)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer$$$$anonfun$$transformUnit$$1.apply(ExplicitOuter.scala:492)
at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:99)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.transformUnit(ExplicitOuter.scala:492)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.transformUnit(ExplicitOuter.scala:293)
at scala.tools.nsc.transform.Transform$$Phase.apply(Transform.scala:31)
at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$applyPhase$$1.apply(Global.scala:278)
at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$applyPhase$$1.apply(Global.scala:278)
at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:48)
at scala.tools.nsc.Global$$GlobalPhase.applyPhase(Global.scala:278)
at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:256)
at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:256)
at scala.collection.Iterator$$class.foreach(Iterator.scala:582)
at scala.collection.mutable.ListBuffer$$$$anon$$1.foreach(ListBuffer.scala:285)
at scala.tools.nsc.Global$$GlobalPhase.run(Global.scala:256)
at scala.tools.nsc.Global$$Run.compileSources(Global.scala:752)
at scala.tools.nsc.Global$$Run.compile(Global.scala:842)
at scala.tools.nsc.Main$$.process(Main.scala:110)
at scala.tools.nsc.Main$$.main(Main.scala:124)
at scala.tools.nsc.Main.main(Main.scala)

@scabug
Copy link
Author

scabug commented Jan 26, 2010

Imported From: https://issues.scala-lang.org/browse/SI-2969?orig=1
Reporter: @Sciss

@scabug
Copy link
Author

scabug commented Jan 26, 2010

@Sciss said:
trac doesn't allow the attachments because of their size. the libraries can be downloaded from

www.sciss.de/test/libraries_ticket_2969.zip

@scabug
Copy link
Author

scabug commented Jan 26, 2010

@Sciss said:
the solution is to rename the inner object that has the same name as the trait

class DefaultTrackComponent {
...
trait DefaultPainter { ... }
object DefaultPainter extends DefaultPainter
}

to

class DefaultTrackComponent {
...
trait DefaultPainterTrait { ... }
object DefaultPainter extends DefaultPainterTrait
}

still probably something to fix in the compiler!

@scabug
Copy link
Author

scabug commented Jan 27, 2010

@lindydonna said:
Please provide a simpler test case so that we can re-examine.

@scabug
Copy link
Author

scabug commented Nov 12, 2010

@paulp said:
See #3994 for this bug reported in a more usable way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant