Skip to content

Commit 78178a9

Browse files
committed
Put precise types in toolbox extractor arguments
1 parent 603d753 commit 78178a9

File tree

3 files changed

+164
-165
lines changed

3 files changed

+164
-165
lines changed

compiler/src/dotty/tools/dotc/tasty/Toolbox.scala

Lines changed: 78 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -3,89 +3,88 @@ package dotty.tools.dotc.tasty
33
import scala.reflect.ClassTag
44
import scala.tasty.constants.Constant
55
import scala.tasty.modifiers.Modifier
6-
import scala.tasty.names.Name
7-
import scala.tasty.names.PossiblySignedName
8-
import scala.tasty.trees.{ImportSelector, Tree}
9-
import scala.tasty.types.MaybeType
6+
import scala.tasty.names
7+
import scala.tasty.trees
8+
import scala.tasty.types
109

1110
object Toolbox {
1211

1312
implicit def extractor: scala.runtime.tasty.Toolbox = new scala.runtime.tasty.Toolbox {
1413

1514
// Statements
1615

17-
override def unapplyPackageClause(arg: Tree) = unapplied(arg, internal.PackageClause.unapplyPackageClause)
18-
override def unapplyImport(arg: Tree) = unapplied(arg, internal.Import.unapplyImport)
19-
override def unapplyValDef(arg: Tree) = unapplied(arg, internal.ValDef.unapplyValDef)
20-
override def unapplyDefDef(arg: Tree) = unapplied(arg, internal.DefDef.unapplyDefDef)
21-
override def unapplyTypeDef(arg: Tree) = unapplied(arg, internal.TypeDef.unapplyTypeDef)
22-
override def unapplyClassDef(arg: Tree) = unapplied(arg, internal.ClassDef.unapplyClassDef)
23-
override def unapplyPackageDef(arg: Tree) = unapplied(arg, internal.PackageDef.unapplyPackageDef)
16+
override def unapplyPackageClause(arg: trees.PackageClause) = unapplied(arg, internal.PackageClause.unapplyPackageClause)
17+
override def unapplyImport(arg: trees.Import) = unapplied(arg, internal.Import.unapplyImport)
18+
override def unapplyValDef(arg: trees.ValDef) = unapplied(arg, internal.ValDef.unapplyValDef)
19+
override def unapplyDefDef(arg: trees.DefDef) = unapplied(arg, internal.DefDef.unapplyDefDef)
20+
override def unapplyTypeDef(arg: trees.TypeDef) = unapplied(arg, internal.TypeDef.unapplyTypeDef)
21+
override def unapplyClassDef(arg: trees.ClassDef) = unapplied(arg, internal.ClassDef.unapplyClassDef)
22+
override def unapplyPackageDef(arg: trees.PackageDef) = unapplied(arg, internal.PackageDef.unapplyPackageDef)
2423

2524
// Terms
2625

27-
override def unapplyIdent(arg: Tree) = unapplied(arg, internal.Term.unapplyIdent)
28-
override def unapplySelect(arg: Tree) = unapplied(arg, internal.Term.unapplySelect)
29-
override def unapplyLiteral(arg: Tree) = unapplied(arg, internal.Term.unapplyLiteral)
30-
override def unapplyThis(arg: Tree) = unapplied(arg, internal.Term.unapplyThis)
31-
override def unapplyNew(arg: Tree) = unapplied(arg, internal.Term.unapplyNew)
32-
override def unapplyNamedArg(arg: Tree) = unapplied(arg, internal.Term.unapplyNamedArg)
33-
override def unapplyApply(arg: Tree) = unapplied(arg, internal.Term.unapplyApply)
34-
override def unapplyTypeApply(arg: Tree) = unapplied(arg, internal.Term.unapplyTypeApply)
35-
override def unapplySuper(arg: Tree) = unapplied(arg, internal.Term.unapplySuper)
36-
override def unapplyTyped(arg: Tree) = unapplied(arg, internal.Term.unapplyTyped)
37-
override def unapplyAssign(arg: Tree) = unapplied(arg, internal.Term.unapplyAssign)
38-
override def unapplyBlock(arg: Tree) = unapplied(arg, internal.Term.unapplyBlock)
39-
override def unapplyInlined(arg: Tree) = unapplied(arg, internal.Term.unapplyInlined)
40-
override def unapplyLambda(arg: Tree) = unapplied(arg, internal.Term.unapplyLambda)
41-
override def unapplyIf(arg: Tree) = unapplied(arg, internal.Term.unapplyIf)
42-
override def unapplyMatch(arg: Tree) = unapplied(arg, internal.Term.unapplyMatch)
43-
override def unapplyTry(arg: Tree) = unapplied(arg, internal.Term.unapplyTry)
44-
override def unapplyReturn(arg: Tree) = unapplied(arg, internal.Term.unapplyReturn)
45-
override def unapplyRepeated(arg: Tree) = unapplied(arg, internal.Term.unapplyRepeated)
46-
override def unapplySelectOuter(arg: Tree) = unapplied(arg, internal.Term.unapplySelectOuter)
26+
override def unapplyIdent(arg: trees.Term) = unapplied(arg, internal.Term.unapplyIdent)
27+
override def unapplySelect(arg: trees.Term) = unapplied(arg, internal.Term.unapplySelect)
28+
override def unapplyLiteral(arg: trees.Term) = unapplied(arg, internal.Term.unapplyLiteral)
29+
override def unapplyThis(arg: trees.Term) = unapplied(arg, internal.Term.unapplyThis)
30+
override def unapplyNew(arg: trees.Term) = unapplied(arg, internal.Term.unapplyNew)
31+
override def unapplyNamedArg(arg: trees.Term) = unapplied(arg, internal.Term.unapplyNamedArg)
32+
override def unapplyApply(arg: trees.Term) = unapplied(arg, internal.Term.unapplyApply)
33+
override def unapplyTypeApply(arg: trees.Term) = unapplied(arg, internal.Term.unapplyTypeApply)
34+
override def unapplySuper(arg: trees.Term) = unapplied(arg, internal.Term.unapplySuper)
35+
override def unapplyTyped(arg: trees.Term) = unapplied(arg, internal.Term.unapplyTyped)
36+
override def unapplyAssign(arg: trees.Term) = unapplied(arg, internal.Term.unapplyAssign)
37+
override def unapplyBlock(arg: trees.Term) = unapplied(arg, internal.Term.unapplyBlock)
38+
override def unapplyInlined(arg: trees.Term) = unapplied(arg, internal.Term.unapplyInlined)
39+
override def unapplyLambda(arg: trees.Term) = unapplied(arg, internal.Term.unapplyLambda)
40+
override def unapplyIf(arg: trees.Term) = unapplied(arg, internal.Term.unapplyIf)
41+
override def unapplyMatch(arg: trees.Term) = unapplied(arg, internal.Term.unapplyMatch)
42+
override def unapplyTry(arg: trees.Term) = unapplied(arg, internal.Term.unapplyTry)
43+
override def unapplyReturn(arg: trees.Term) = unapplied(arg, internal.Term.unapplyReturn)
44+
override def unapplyRepeated(arg: trees.Term) = unapplied(arg, internal.Term.unapplyRepeated)
45+
override def unapplySelectOuter(arg: trees.Term) = unapplied(arg, internal.Term.unapplySelectOuter)
4746

4847

4948
// Pattern
5049

51-
override def unapplyCaseDef(arg: Tree) = unapplied(arg, internal.CaseDef.unapplyCaseDef)
50+
override def unapplyCaseDef(arg: trees.CaseDef) = unapplied(arg, internal.CaseDef.unapplyCaseDef)
5251

53-
override def unapplyValue(arg: Tree) = unapplied(arg, internal.Pattern.unapplyValue)
54-
override def unapplyBind(arg: Tree) = unapplied(arg, internal.Pattern.unapplyBind)
55-
override def unapplyUnapply(arg: Tree) = unapplied(arg, internal.Pattern.unapplyUnapply)
56-
override def unapplyAlternative(arg: Tree) = unapplied(arg, internal.Pattern.unapplyAlternative)
57-
override def unapplyTypeTest(arg: Tree) = unapplied(arg, internal.Pattern.unapplyTypeTest)
52+
override def unapplyValue(arg: trees.Pattern) = unapplied(arg, internal.Pattern.unapplyValue)
53+
override def unapplyBind(arg: trees.Pattern) = unapplied(arg, internal.Pattern.unapplyBind)
54+
override def unapplyUnapply(arg: trees.Pattern) = unapplied(arg, internal.Pattern.unapplyUnapply)
55+
override def unapplyAlternative(arg: trees.Pattern) = unapplied(arg, internal.Pattern.unapplyAlternative)
56+
override def unapplyTypeTest(arg: trees.Pattern) = unapplied(arg, internal.Pattern.unapplyTypeTest)
5857

5958
// Type trees
6059

61-
override def unapplySynthetic(arg: Tree) = unapplied(arg, internal.TypeTree.unapplySynthetic)
62-
override def unapplyTypeIdent(arg: Tree) = unapplied(arg, internal.TypeTree.unapplyTypeIdent)
63-
override def unapplyTypeSelect(arg: Tree) = unapplied(arg, internal.TypeTree.unapplyTypeSelect)
64-
override def unapplySingleton(arg: Tree) = unapplied(arg, internal.TypeTree.unapplySingleton)
65-
override def unapplyRefined(arg: Tree) = unapplied(arg, internal.TypeTree.unapplyRefined)
66-
override def unapplyApplied(arg: Tree) = unapplied(arg, internal.TypeTree.unapplyApplied)
67-
override def unapplyAnnotated(arg: Tree) = unapplied(arg, internal.TypeTree.unapplyAnnotated)
68-
override def unapplyAnd(arg: Tree) = unapplied(arg, internal.TypeTree.unapplyAnd)
69-
override def unapplyOr(arg: Tree) = unapplied(arg, internal.TypeTree.unapplyOr)
70-
override def unapplyByName(arg: Tree) = unapplied(arg, internal.TypeTree.unapplyByName)
60+
override def unapplySynthetic(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplySynthetic)
61+
override def unapplyTypeIdent(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplyTypeIdent)
62+
override def unapplyTypeSelect(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplyTypeSelect)
63+
override def unapplySingleton(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplySingleton)
64+
override def unapplyRefined(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplyRefined)
65+
override def unapplyApplied(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplyApplied)
66+
override def unapplyAnnotated(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplyAnnotated)
67+
override def unapplyAnd(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplyAnd)
68+
override def unapplyOr(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplyOr)
69+
override def unapplyByName(arg: trees.TypeTree) = unapplied(arg, internal.TypeTree.unapplyByName)
7170

72-
override def unapplyTypeBoundsTree(arg: Tree) = unapplied(arg, internal.TypeBoundsTree.unapplyTypeBounds)
71+
override def unapplyTypeBoundsTree(arg: trees.TypeBoundsTree) = unapplied(arg, internal.TypeBoundsTree.unapplyTypeBounds)
7372

7473
// Names
7574

76-
override def unapplySimple(arg: Name) = unapplied(arg, internal.TermName.unapplySimple)
77-
override def unapplyQualified(arg: Name) = unapplied(arg, internal.TermName.unapplyQualified)
75+
override def unapplySimple(arg: names.TermName) = unapplied(arg, internal.TermName.unapplySimple)
76+
override def unapplyQualified(arg: names.TermName) = unapplied(arg, internal.TermName.unapplyQualified)
7877

79-
override def unapplyDefaultGetter(arg: Name) = unapplied(arg, internal.TermName.unapplyDefaultGetter)
80-
override def unapplyVariant(arg: Name) = unapplied(arg, internal.TermName.unapplyVariant)
81-
override def unapplySuperAccessor(arg: Name) = unapplied(arg, internal.TermName.unapplySuperAccessor)
82-
override def unapplyProtectedAccessor(arg: Name) = unapplied(arg, internal.TermName.unapplyProtectedAccessor)
83-
override def unapplyProtectedSetter(arg: Name) = unapplied(arg, internal.TermName.unapplyProtectedSetter)
84-
override def unapplyObjectClass(arg: Name) = unapplied(arg, internal.TermName.unapplyObjectClass)
78+
override def unapplyDefaultGetter(arg: names.TermName) = unapplied(arg, internal.TermName.unapplyDefaultGetter)
79+
override def unapplyVariant(arg: names.TermName) = unapplied(arg, internal.TermName.unapplyVariant)
80+
override def unapplySuperAccessor(arg: names.TermName) = unapplied(arg, internal.TermName.unapplySuperAccessor)
81+
override def unapplyProtectedAccessor(arg: names.TermName) = unapplied(arg, internal.TermName.unapplyProtectedAccessor)
82+
override def unapplyProtectedSetter(arg: names.TermName) = unapplied(arg, internal.TermName.unapplyProtectedSetter)
83+
override def unapplyObjectClass(arg: names.TermName) = unapplied(arg, internal.TermName.unapplyObjectClass)
8584

86-
override def unapplySignedName(arg: PossiblySignedName) = unapplied(arg, internal.SignedName.unapplySignedName)
85+
override def unapplySignedName(arg: names.SignedName) = unapplied(arg, internal.SignedName.unapplySignedName)
8786

88-
override def unapplyTypeName(arg: Name) = unapplied(arg, internal.TypeName.unapplyTypeName)
87+
override def unapplyTypeName(arg: names.TypeName) = unapplied(arg, internal.TypeName.unapplyTypeName)
8988

9089
// Constants
9190

@@ -103,27 +102,27 @@ object Toolbox {
103102

104103
// Types
105104

106-
override def unapplyConstantType(arg: MaybeType) = unapplied(arg, internal.Type.unapplyConstantType)
107-
override def unapplySymRef(arg: MaybeType) = unapplied(arg, internal.Type.unapplySymRef)
108-
override def unapplyNameRef(arg: MaybeType) = unapplied(arg, internal.Type.unapplyNameRef)
109-
override def unapplySuperType(arg: MaybeType) = unapplied(arg, internal.Type.unapplySuperType)
110-
override def unapplyRefinement(arg: MaybeType) = unapplied(arg, internal.Type.unapplyRefinement)
111-
override def unapplyAppliedType(arg: MaybeType) = unapplied(arg, internal.Type.unapplyAppliedType)
112-
override def unapplyAnnotatedType(arg: MaybeType) = unapplied(arg, internal.Type.unapplyAnnotatedType)
113-
override def unapplyAndType(arg: MaybeType) = unapplied(arg, internal.Type.unapplyAndType)
114-
override def unapplyOrType(arg: MaybeType) = unapplied(arg, internal.Type.unapplyOrType)
115-
override def unapplyByNameType(arg: MaybeType) = unapplied(arg, internal.Type.unapplyByNameType)
116-
override def unapplyParamRef(arg: MaybeType) = unapplied(arg, internal.Type.unapplyParamRef)
117-
override def unapplyThisType(arg: MaybeType) = unapplied(arg, internal.Type.unapplyThisType)
118-
override def unapplyRecursiveThis(arg: MaybeType) = unapplied(arg, internal.Type.unapplyRecursiveThis)
105+
override def unapplyConstantType(arg: types.Type) = unapplied(arg, internal.Type.unapplyConstantType)
106+
override def unapplySymRef(arg: types.Type) = unapplied(arg, internal.Type.unapplySymRef)
107+
override def unapplyNameRef(arg: types.Type) = unapplied(arg, internal.Type.unapplyNameRef)
108+
override def unapplySuperType(arg: types.Type) = unapplied(arg, internal.Type.unapplySuperType)
109+
override def unapplyRefinement(arg: types.Type) = unapplied(arg, internal.Type.unapplyRefinement)
110+
override def unapplyAppliedType(arg: types.Type) = unapplied(arg, internal.Type.unapplyAppliedType)
111+
override def unapplyAnnotatedType(arg: types.Type) = unapplied(arg, internal.Type.unapplyAnnotatedType)
112+
override def unapplyAndType(arg: types.Type) = unapplied(arg, internal.Type.unapplyAndType)
113+
override def unapplyOrType(arg: types.Type) = unapplied(arg, internal.Type.unapplyOrType)
114+
override def unapplyByNameType(arg: types.Type) = unapplied(arg, internal.Type.unapplyByNameType)
115+
override def unapplyParamRef(arg: types.Type) = unapplied(arg, internal.Type.unapplyParamRef)
116+
override def unapplyThisType(arg: types.Type) = unapplied(arg, internal.Type.unapplyThisType)
117+
override def unapplyRecursiveThis(arg: types.Type) = unapplied(arg, internal.Type.unapplyRecursiveThis)
119118

120-
override def unapplyRecursiveType(arg: MaybeType) = unapplied(arg, internal.RecursiveType.unapplyRecursiveType)
119+
override def unapplyRecursiveType(arg: types.RecursiveType) = unapplied(arg, internal.RecursiveType.unapplyRecursiveType)
121120

122-
override def unapplyMethodType(arg: MaybeType) = unapplied(arg, internal.MethodType.unapplyMethodType)
123-
override def unapplyPolyType(arg: MaybeType) = unapplied(arg, internal.PolyType.unapplyPolyType)
124-
override def unapplyTypeLambda(arg: MaybeType) = unapplied(arg, internal.TypeLambda.unapplyTypeLambda)
121+
override def unapplyMethodType(arg: types.MethodType) = unapplied(arg, internal.MethodType.unapplyMethodType)
122+
override def unapplyPolyType(arg: types.PolyType) = unapplied(arg, internal.PolyType.unapplyPolyType)
123+
override def unapplyTypeLambda(arg: types.TypeLambda) = unapplied(arg, internal.TypeLambda.unapplyTypeLambda)
125124

126-
override def unapplyTypeBounds(arg: MaybeType) = unapplied(arg, internal.TypeBounds.unapplyTypeBounds)
125+
override def unapplyTypeBounds(arg: types.TypeBounds) = unapplied(arg, internal.TypeBounds.unapplyTypeBounds)
127126

128127
// Modifiers
129128

@@ -134,9 +133,9 @@ object Toolbox {
134133

135134
// Import Selectors
136135

137-
override def unapplySimpleSelector(arg: ImportSelector) = unapplied(arg, internal.ImportSelector.unapplySimpleSelector)
138-
override def unapplyRenameSelector(arg: ImportSelector) = unapplied(arg, internal.ImportSelector.unapplyRenameSelector)
139-
override def unapplyOmitSelector(arg: ImportSelector) = unapplied(arg, internal.ImportSelector.unapplyOmitSelector)
136+
override def unapplySimpleSelector(arg: trees.ImportSelector) = unapplied(arg, internal.ImportSelector.unapplySimpleSelector)
137+
override def unapplyRenameSelector(arg: trees.ImportSelector) = unapplied(arg, internal.ImportSelector.unapplyRenameSelector)
138+
override def unapplyOmitSelector(arg: trees.ImportSelector) = unapplied(arg, internal.ImportSelector.unapplyOmitSelector)
140139

141140
private def unapplied[T: ClassTag, U](arg: Any, fn: T => Option[U]): Option[U] = arg match {
142141
case arg: T => fn(arg)

0 commit comments

Comments
 (0)