Extend the argument list givenArgs
with default arguments.
Extend the argument list givenArgs
with default arguments. Defaults are added
as named arguments calling the corresponding default getter.
Example: given def foo(x: Int = 2, y: String = "def") foo(y = "lt") the argument list (y = "lt") is transformed to (y = "lt", x = foo$default$1())
For a parameter with default argument, find the method symbol of the default getter.
returns true
if every element is equal to its index
Removes name assignments from args.
Removes name assignments from args. Additionally, returns an array mapping argument indices from call-site-order to definition-site-order.
Verifies that names are not specified twice, positional args don't appear after named ones.
maps indices from old to new
maps indices from new to old (!)
Transform a function application into a Block, and assigns typer.
Transform a function application into a Block, and assigns typer.context .namedApplyBlockInfo to the new block as side-effect. If tree has the form Apply(fun, args) first the function "fun" (which might be an application itself!) is transformed into a block of the form { val qual$1 = qualifier_of_fun val x$1 = arg_1_of_fun ... val x$n = arg_n_of_fun qual$1.fun[targs](x$1, ...)...(..., x$n) } then for each argument in args, a value is created and entered into the block. finally the application expression of the block is updated. { val qual$1 = .. ... val x$n = ... > val qual$n+1 = arg(1) > ... > val qual$n+m = arg(m) > qual$1.fun[targs](x$1, ...)...(..., x$n)(x$n+1, ..., x$n+m) }
the typer calling this method; this method calls typer.doTypedApply
the mode to use for calling typer.doTypedApply
the expected type for calling typer.doTypedApply
the transformed application (a Block) together with the NamedApplyInfo. if isNamedApplyBlock(tree), returns the existing context.namedApplyBlockInfo
(namesDefaults: StringAdd).self
(namesDefaults: StringFormat).self
(namesDefaults: ArrowAssoc[NamesDefaults]).x
(Since version 2.10.0) Use leftOfArrow
instead
(namesDefaults: Ensuring[NamesDefaults]).x
(Since version 2.10.0) Use resultOfEnsuring
instead
1.0