Skip to content

ETA-expansion of implicit-scoped methods SOE's Typer #10279

@viktorklang

Description

@viktorklang

Welcome to Scala 2.12.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_121).
Type in expressions for evaluation. Or try :help.

scala> def foo(i: Int)(implicit s: String): String = ???
foo: (i: Int)(implicit s: String)String

scala> foo(1) _
java.lang.StackOverflowError
	at scala.reflect.internal.Trees.itransform(Trees.scala:1342)
	at scala.reflect.internal.Trees.itransform$(Trees.scala:1340)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1670)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1667)
	at scala.reflect.internal.Trees.itransform(Trees.scala:1349)
	at scala.reflect.internal.Trees.itransform$(Trees.scala:1340)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1670)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1667)
	at scala.reflect.internal.Trees.itransform(Trees.scala:1349)
	at scala.reflect.internal.Trees.itransform$(Trees.scala:1340)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1670)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1667)
	at scala.reflect.internal.Trees.itransform(Trees.scala:1349)
	at scala.reflect.internal.Trees.itransform$(Trees.scala:1340)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1670)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1667)
	at scala.reflect.internal.Trees.itransform(Trees.scala:1349)
	at scala.reflect.internal.Trees.itransform$(Trees.scala:1340)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1670)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1667)
	at scala.reflect.internal.Trees.itransform(Trees.scala:1349)
	at scala.reflect.internal.Trees.itransform$(Trees.scala:1340)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.reflect.internal.Trees$Duplicator.transform(Trees.scala:1670)
	at scala.reflect.internal.Trees$Tree.duplicate(Trees.scala:99)
	at scala.tools.nsc.typechecker.Contexts$Context.lookupSymbol(Contexts.scala:1169)
	at scala.tools.nsc.typechecker.Typers$Typer.typedIdent$2(Typers.scala:5030)
	at scala.tools.nsc.typechecker.Typers$Typer.typedIdentOrWildcard$1(Typers.scala:5069)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5508)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5527)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5563)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5593)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5537)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5541)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typed1$38(Typers.scala:4696)
	at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:703)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4698)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4745)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5510)

[...]

	at scala.tools.nsc.typechecker.Typers$Typer.typedEta$1(Typers.scala:4540)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTyped$1(Typers.scala:5268)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5513)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5527)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5563)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5593)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5537)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5541)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5638)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$adapt$5(Typers.scala:879)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typerWithLocalContext$1(Typers.scala:491)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$adapt$3(Typers.scala:491)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$adapt$1(Typers.scala:77)
	at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:482)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1210)
	at scala.tools.nsc.typechecker.Typers$Typer.typedEta$1(Typers.scala:4540)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTyped$1(Typers.scala:5268)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5513)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5527)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5563)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5593)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5537)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5541)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions