blob: 7997aa308a93ab624f305f8d604afd83af506e59 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package dotty.tools.dotc
package transform
import core._
import Symbols._, Contexts._, Types._, Names._, StdNames._
import ast._
import Trees._
import TypeUtils._
object TreeGen {
import tpd._
def wrapArrayMethodName(elemtp: Type)(implicit ctx: Context): TermName = {
val elemCls = elemtp.classSymbol
if (elemCls.isPrimitiveValueClass) nme.wrapXArray(elemCls.name)
else if (elemCls.derivesFrom(defn.ObjectClass) && !elemCls.isPhantomClass) nme.wrapRefArray
else nme.genericWrapArray
}
def wrapArray(tree: Tree, elemtp: Type)(implicit ctx: Context): Tree =
ref(defn.ScalaPredefModule)
.select(wrapArrayMethodName(elemtp))
.appliedToTypes(if (elemtp.isPrimitiveValueType) Nil else elemtp :: Nil)
.appliedTo(tree)
}
|