-
Notifications
You must be signed in to change notification settings - Fork 790
/
QuotationPickler.fsi
175 lines (98 loc) · 4.73 KB
/
QuotationPickler.fsi
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
/// Code to pickle out quotations in the quotation binary format.
module internal FSharp.Compiler.QuotationPickler
#nowarn "1178"
type TypeData
type TypeVarData = { tvName: string }
type NamedTypeData =
/// Indicates an F# 4.0+ reference into the supplied table of type definition references, ultimately resolved by TypeRef/TypeDef data
| Idx of int
/// Indicates an F# 3.0+ reference to a named type in an assembly loaded by name
| Named of tcName: string * tcAssembly: string
val mkVarTy: int -> TypeData
val mkFunTy: TypeData * TypeData -> TypeData
val mkArrayTy: int * TypeData -> TypeData
val mkILNamedTy: NamedTypeData * TypeData list -> TypeData
type ExprData
type ValData =
{ Name: string
Type: TypeData
IsMutable: bool }
type CtorData =
{ Parent: NamedTypeData
ArgTypes: TypeData list }
type MethodData =
{ Parent: NamedTypeData
Name: string
ArgTypes: TypeData list
RetType: TypeData
NumGenericArgs: int }
type ModuleDefnData =
{ Module: NamedTypeData
Name: string
IsProperty: bool }
type MethodBaseData =
| ModuleDefn of ModuleDefnData * (string * int) option
| Method of MethodData
| Ctor of CtorData
type PropInfoData = NamedTypeData * string * TypeData * TypeData list
val mkVar: int -> ExprData
val mkThisVar: TypeData -> ExprData
val mkHole: TypeData * int -> ExprData
val mkApp: ExprData * ExprData -> ExprData
val mkLambda: ValData * ExprData -> ExprData
val mkQuote: ExprData -> ExprData
val mkQuoteRaw40: ExprData -> ExprData // only available for FSharp.Core 4.4.0.0+
val mkCond: ExprData * ExprData * ExprData -> ExprData
val mkModuleValueApp: NamedTypeData * string * bool * TypeData list * ExprData list -> ExprData
val mkModuleValueWApp: NamedTypeData * string * bool * string * int * TypeData list * ExprData list -> ExprData
val mkLetRec: (ValData * ExprData) list * ExprData -> ExprData
val mkLet: (ValData * ExprData) * ExprData -> ExprData
val mkRecdMk: NamedTypeData * TypeData list * ExprData list -> ExprData
val mkRecdGet: NamedTypeData * string * TypeData list * ExprData list -> ExprData
val mkRecdSet: NamedTypeData * string * TypeData list * ExprData list -> ExprData
val mkUnion: NamedTypeData * string * TypeData list * ExprData list -> ExprData
val mkUnionFieldGet: NamedTypeData * string * int * TypeData list * ExprData -> ExprData
val mkUnionCaseTagTest: NamedTypeData * string * TypeData list * ExprData -> ExprData
val mkTuple: TypeData * ExprData list -> ExprData
val mkTupleGet: TypeData * int * ExprData -> ExprData
val mkCoerce: TypeData * ExprData -> ExprData
val mkNewArray: TypeData * ExprData list -> ExprData
val mkTypeTest: TypeData * ExprData -> ExprData
val mkAddressSet: ExprData * ExprData -> ExprData
val mkVarSet: ExprData * ExprData -> ExprData
val mkUnit: unit -> ExprData
val mkNull: TypeData -> ExprData
val mkDefaultValue: TypeData -> ExprData
val mkBool: bool * TypeData -> ExprData
val mkString: string * TypeData -> ExprData
val mkSingle: float32 * TypeData -> ExprData
val mkDouble: float * TypeData -> ExprData
val mkChar: char * TypeData -> ExprData
val mkSByte: sbyte * TypeData -> ExprData
val mkByte: byte * TypeData -> ExprData
val mkInt16: int16 * TypeData -> ExprData
val mkUInt16: uint16 * TypeData -> ExprData
val mkInt32: int32 * TypeData -> ExprData
val mkUInt32: uint32 * TypeData -> ExprData
val mkInt64: int64 * TypeData -> ExprData
val mkUInt64: uint64 * TypeData -> ExprData
val mkAddressOf: ExprData -> ExprData
val mkSequential: ExprData * ExprData -> ExprData
val mkIntegerForLoop: ExprData * ExprData * ExprData -> ExprData
val mkWhileLoop: ExprData * ExprData -> ExprData
val mkTryFinally: ExprData * ExprData -> ExprData
val mkTryWith: ExprData * ValData * ExprData * ValData * ExprData -> ExprData
val mkDelegate: TypeData * ExprData -> ExprData
val mkPropGet: PropInfoData * TypeData list * ExprData list -> ExprData
val mkPropSet: PropInfoData * TypeData list * ExprData list -> ExprData
val mkFieldGet: NamedTypeData * string * TypeData list * ExprData list -> ExprData
val mkFieldSet: NamedTypeData * string * TypeData list * ExprData list -> ExprData
val mkCtorCall: CtorData * TypeData list * ExprData list -> ExprData
val mkMethodCall: MethodData * TypeData list * ExprData list -> ExprData
val mkMethodCallW: MethodData * MethodData * int * TypeData list * ExprData list -> ExprData
val mkAttributedExpression: ExprData * ExprData -> ExprData
val pickle: (ExprData -> byte[])
val isAttributedExpression: ExprData -> bool
val PickleDefns: ((MethodBaseData * ExprData) list -> byte[])
val SerializedReflectedDefinitionsResourceNameBase: string