blob: aca0692d0d07c7fc97737bfec8ed7784189fef31 (
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
package scala
package reflect
package api
/** Tags which preserve the identity of abstract types in the face of erasure.
* Can be used for pattern matching, instance tests, serialization and the like.
* @group Tags
*/
trait ImplicitTags {
self: Universe =>
// Tags for Types.
implicit val AnnotatedTypeTag: ClassTag[AnnotatedType]
implicit val BoundedWildcardTypeTag: ClassTag[BoundedWildcardType]
implicit val ClassInfoTypeTag: ClassTag[ClassInfoType]
implicit val CompoundTypeTag: ClassTag[CompoundType]
implicit val ConstantTypeTag: ClassTag[ConstantType]
implicit val ExistentialTypeTag: ClassTag[ExistentialType]
implicit val MethodTypeTag: ClassTag[MethodType]
implicit val NullaryMethodTypeTag: ClassTag[NullaryMethodType]
implicit val PolyTypeTag: ClassTag[PolyType]
implicit val RefinedTypeTag: ClassTag[RefinedType]
implicit val SingleTypeTag: ClassTag[SingleType]
implicit val SingletonTypeTag: ClassTag[SingletonType]
implicit val SuperTypeTag: ClassTag[SuperType]
implicit val ThisTypeTag: ClassTag[ThisType]
implicit val TypeBoundsTag: ClassTag[TypeBounds]
implicit val TypeRefTag: ClassTag[TypeRef]
implicit val TypeTagg: ClassTag[Type]
// Tags for Names.
implicit val NameTag: ClassTag[Name]
implicit val TermNameTag: ClassTag[TermName]
implicit val TypeNameTag: ClassTag[TypeName]
// Tags for Scopes.
implicit val ScopeTag: ClassTag[Scope]
implicit val MemberScopeTag: ClassTag[MemberScope]
// Tags for Annotations.
implicit val AnnotationTag: ClassTag[Annotation]
implicit val JavaArgumentTag: ClassTag[JavaArgument]
implicit val LiteralArgumentTag: ClassTag[LiteralArgument]
implicit val ArrayArgumentTag: ClassTag[ArrayArgument]
implicit val NestedArgumentTag: ClassTag[NestedArgument]
// Tags for Symbols.
implicit val TermSymbolTag: ClassTag[TermSymbol]
implicit val MethodSymbolTag: ClassTag[MethodSymbol]
implicit val SymbolTag: ClassTag[Symbol]
implicit val TypeSymbolTag: ClassTag[TypeSymbol]
implicit val ModuleSymbolTag: ClassTag[ModuleSymbol]
implicit val ClassSymbolTag: ClassTag[ClassSymbol]
// Tags for misc Tree relatives.
implicit val PositionTag: ClassTag[Position]
implicit val ConstantTag: ClassTag[Constant]
implicit val FlagSetTag: ClassTag[FlagSet]
implicit val ModifiersTag: ClassTag[Modifiers]
// Tags for Trees. WTF.
implicit val AlternativeTag: ClassTag[Alternative]
implicit val AnnotatedTag: ClassTag[Annotated]
implicit val AppliedTypeTreeTag: ClassTag[AppliedTypeTree]
implicit val ApplyTag: ClassTag[Apply]
implicit val AssignOrNamedArgTag: ClassTag[AssignOrNamedArg]
implicit val AssignTag: ClassTag[Assign]
implicit val BindTag: ClassTag[Bind]
implicit val BlockTag: ClassTag[Block]
implicit val CaseDefTag: ClassTag[CaseDef]
implicit val ClassDefTag: ClassTag[ClassDef]
implicit val CompoundTypeTreeTag: ClassTag[CompoundTypeTree]
implicit val DefDefTag: ClassTag[DefDef]
implicit val DefTreeTag: ClassTag[DefTree]
implicit val ExistentialTypeTreeTag: ClassTag[ExistentialTypeTree]
implicit val FunctionTag: ClassTag[Function]
implicit val GenericApplyTag: ClassTag[GenericApply]
implicit val IdentTag: ClassTag[Ident]
implicit val IfTag: ClassTag[If]
implicit val ImplDefTag: ClassTag[ImplDef]
implicit val ImportSelectorTag: ClassTag[ImportSelector]
implicit val ImportTag: ClassTag[Import]
implicit val LabelDefTag: ClassTag[LabelDef]
implicit val LiteralTag: ClassTag[Literal]
implicit val MatchTag: ClassTag[Match]
implicit val MemberDefTag: ClassTag[MemberDef]
implicit val ModuleDefTag: ClassTag[ModuleDef]
implicit val NameTreeTag: ClassTag[NameTree]
implicit val NewTag: ClassTag[New]
implicit val PackageDefTag: ClassTag[PackageDef]
implicit val RefTreeTag: ClassTag[RefTree]
implicit val ReturnTag: ClassTag[Return]
implicit val SelectFromTypeTreeTag: ClassTag[SelectFromTypeTree]
implicit val SelectTag: ClassTag[Select]
implicit val SingletonTypeTreeTag: ClassTag[SingletonTypeTree]
implicit val StarTag: ClassTag[Star]
implicit val SuperTag: ClassTag[Super]
implicit val SymTreeTag: ClassTag[SymTree]
implicit val TemplateTag: ClassTag[Template]
implicit val TermTreeTag: ClassTag[TermTree]
implicit val ThisTag: ClassTag[This]
implicit val ThrowTag: ClassTag[Throw]
implicit val TreeTag: ClassTag[Tree]
implicit val TryTag: ClassTag[Try]
implicit val TypTreeTag: ClassTag[TypTree]
implicit val TypeApplyTag: ClassTag[TypeApply]
implicit val TypeBoundsTreeTag: ClassTag[TypeBoundsTree]
implicit val TypeDefTag: ClassTag[TypeDef]
implicit val TypeTreeTag: ClassTag[TypeTree]
implicit val TypedTag: ClassTag[Typed]
implicit val UnApplyTag: ClassTag[UnApply]
implicit val ValDefTag: ClassTag[ValDef]
implicit val ValOrDefDefTag: ClassTag[ValOrDefDef]
// Miscellaneous
implicit val TreeCopierTag: ClassTag[TreeCopier]
implicit val RuntimeClassTag: ClassTag[RuntimeClass]
implicit val MirrorTag: ClassTag[Mirror]
}
|