forked from dotnet/fsharp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDetupleArgs.fsi
More file actions
39 lines (31 loc) · 1.7 KB
/
Copy pathDetupleArgs.fsi
File metadata and controls
39 lines (31 loc) · 1.7 KB
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
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
module internal Microsoft.FSharp.Compiler.Detuple
open Internal.Utilities
open Microsoft.FSharp.Compiler.AbstractIL
open Microsoft.FSharp.Compiler.AbstractIL.Internal
open Microsoft.FSharp.Compiler
open Microsoft.FSharp.Compiler.Tast
open Microsoft.FSharp.Compiler.TcGlobals
(* detuple pass: *)
val DetupleImplFile : CcuThunk -> TcGlobals -> TypedImplFile -> TypedImplFile
module GlobalUsageAnalysis =
val GetValsBoundInExpr : Expr -> Zset<Val>
type accessor
/// Results is "expr information".
/// This could extend to be a full graph view of the expr.
/// Later could support "safe" change operations, and optimisations could be in terms of those.
type Results =
{ /// v -> context / APP inst args
Uses : Zmap<Val,(accessor list * TType list * Expr list) list>;
/// v -> binding repr
Defns : Zmap<Val,Expr>;
/// bound in a decision tree?
DecisionTreeBindings : Zset<Val>;
/// v -> recursive? * v list -- the others in the mutual binding
RecursiveBindings : Zmap<Val,(bool * Vals)>;
/// val not defined under lambdas
TopLevelBindings : Zset<Val>;
/// top of expr toplevel? (true)
IterationIsAtTopLevel : bool;
}
val GetUsageInfoOfImplFile : TcGlobals -> TypedImplFile -> Results