mixer.scala:
def mixer2(begin: String, beginings: String*) = new {
def apply(end: String, endings: String*) = {
println(new Exception().getStackTrace().take(6).mkString("\n"))
for (b <- (begin +: beginings); e <- (end +: endings)) yield b+e
}
}
def isThisReflection()=mixer2("a", "z")("A", "Z")
isThisReflection()
> scala mixer.scala
Main$$anon$1$$anon$2.apply(mixer.scala:3)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
Main$$anon$1.isThisReflection(mixer.scala:7)