package test import dotty.tools.dotc._ import core._ import Decorators._ import Types._, Symbols._ object sigtest extends DottyTest { println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet val int = ctx.requiredClass("scala.Int") //> int : dotty.tools.dotc.core.Symbols.ClassSymbol = class Int int.signature //> res0: dotty.tools.dotc.core.Denotations.Signature = List() val intmeth = methType("x")(int.symbolicRef)() //> intmeth : dotty.tools.dotc.core.Types.MethodType = MethodType(List(x), List //| (TypeRef(ThisType(module class scala),Int)), TypeRef(ThisType(module class s //| cala),Unit)) intmeth.signature //> res1: dotty.tools.dotc.core.Denotations.Signature = List(Int) val arr = defn.ArrayType.appliedTo(int.symbolicRef) //> arr : dotty.tools.dotc.core.Types.Type = RefinedType(TypeRef(ThisType(modul //| e class scala),Array), scala$Array$$T, TypeAlias(TypeRef(ThisType(module cla //| ss scala),Int)) | hash = 1907214242) val arraymeth = methType("x")(arr)() //> arraymeth : dotty.tools.dotc.core.Types.MethodType = MethodType(List(x), Li //| st(RefinedType(TypeRef(ThisType(module class scala),Array), scala$Array$$T, //| TypeAlias(TypeRef(ThisType(module class scala),Int)) | hash = 1907214242)), //| TypeRef(ThisType(module class scala),Unit)) arraymeth.signature //> res2: dotty.tools.dotc.core.Denotations.Signature = List(Int[]) val curriedmeth = methType("x", "y")(defn.IntType, defn.BooleanType)(methType("z")(defn.ArrayType.appliedTo(defn.IntType))()) //> curriedmeth : dotty.tools.dotc.core.Types.MethodType = MethodType(List(x, y //| ), List(TypeRef(ThisType(module class scala),Int), TypeRef(ThisType(module c //| lass scala),Boolean)), MethodType(List(z), List(RefinedType(TypeRef(ThisType //| (module class scala),Array), scala$Array$$T, TypeAlias(TypeRef(ThisType(modu //| le class scala),Int)) | hash = 1808140099)), TypeRef(ThisType(module class s //| cala),Unit))) curriedmeth.signature //> res3: dotty.tools.dotc.core.Denotations.Signature = List(Int, Boolean, Int[] //| ) }