summaryrefslogtreecommitdiff
path: root/docs/development/scala.tools.nsc/nscTypes.dot
blob: b4c0cb5960f822ef48d999778656ac913634787b (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
digraph SQLTypes {

  size="4,4"
  rankdir=BT
  rank=max
  ratio=compress

  node [shape = record]

  Type

  SimpleTypeProxy [label = "{SimpleTypeProxy|(trait)}"]
  SimpleTypeProxy -> Type

  RewrappingTypeProxy [label = "{RewrappingTypeProxy|(trait)}"]
  RewrappingTypeProxy -> SimpleTypeProxy

  SubType -> Type

  NotNullType [label = "{NotNullType|underlying: Type}"]
  NotNullType -> SubType
  NotNullType -> RewrappingTypeProxy

  SingletonType -> SubType
  SingletonType -> SimpleTypeProxy

  ErrorType [label = "{ErrorType|(object)}"]
  ErrorType -> Type

  WildcardType [label = "{WildcardType|(object)}"]
  WildcardType -> Type

  BoundedWildcardType [label = "{BoundedWildcardType|bounds: TypeBounds}"]
  BoundedWildcardType -> Type

  NoType [label = "{NoType|(object)}"]
  NoType -> Type

  NoPrefix [label = "{NoPrefix|(object)}"]
  NoPrefix -> Type

  DeBruijnIndex -> Type

  ThisType [label = "{ThisType|sym: Symbol}"]
  ThisType -> SingletonType

  SingleType [label = "{SingleType|pre: Type\nsym: Symbol}"]
  SingleType -> SingletonType

  SuperType [label = "{SuperType|thistpe: Type\nsupertp: Type}"]
  SuperType -> SingletonType

  TypeBounds [label = "{TypeBounds|lo: Type\nhi: Type}"]
  TypeBounds -> SubType

  CompoundType -> Type

  RefinedType[label = "{RefinedType|parents: List[Type]\ndecls: Scope}"]
  RefinedType -> CompoundType

  ClassInfoType[label = "{ClassInfoType|parents: List[Type]\ndecls: Scope\nsymbol: Symbol}"]
  ClassInfoType -> CompoundType

  PackageClassInfoType[label = "{PackageClassInfoType|decls: Scope\nclazz: Symbol\nloader: LazyType}"]
  PackageClassInfoType -> ClassInfoType

  ConstantType[label = "{ConstantType|value: Constant}"]
  ConstantType -> SingletonType

  TypeRef[label = "{TypeRef|pre: Type\nsym: Symbol\nargs: List[Type]}"]
  TypeRef -> Type

  MethodType[label = "{MethodType|paramTypes: List[Type]\nresultType: Type}"]
  MethodType -> Type

  ImplicitMethodType[label = "{MethodType|pts: List[Type]\nrt: Type}"]
  ImplicitMethodType -> MethodType

  JavaMethodType[label = "{MethodType|pts: List[Type]\nrt: Type}"]
  JavaMethodType -> MethodType

  PolyType[label = "{PolyType|typeParams: List[Symbol]\nresultType: Type}"]
  PolyType -> Type

  OverloadedType[label = "{OverloadedType|quantified: List[Symbol]\nunderlying: Type}"]
  ExistentialType -> RewrappingTypeProxy

  OverloadedType[label = "{OverloadedType|pre: Type\nalternatives: List[Symbol]}"]
  OverloadedType -> Type

  AntiPolyType[label = "{AntiPolyType|pre: Type\ntargs: List[Type]}"]
  AntiPolyType -> Type

  TypeVar[label = "{TypeVar|origin: Type\nconstr: TypeConstraint}"]
  TypeVar -> Type

  AnnotatedType[label = "{AnnotatedType|attributes: List[AnnotationInfo]\nunderlying: Type\nselfsym: Symbol}"]
  AnnotatedType -> RewrappingTypeProxy

  LazyType -> Type

}