未验证 提交 2eb7dc7c 编写于 作者: I Igor Bagdamyan 提交者: GitHub

Changed node { return x } to node.Return x for better stacks/perf. (#13112)

上级 91fb7796
......@@ -237,7 +237,7 @@ type GraphNode<'T> (retryCompute: bool, computation: NodeCode<'T>) =
// This computation can only be canceled if the requestCount reaches zero.
let! result = computation |> Async.AwaitNodeCode
cachedResult <- Task.FromResult(result)
cachedResultNode <- node { return result }
cachedResultNode <- node.Return result
computation <- Unchecked.defaultof<_>
if not callerCancellationToken.IsCancellationRequested then
replyChannel.Reply(Ok result)
......@@ -326,7 +326,7 @@ type GraphNode<'T> (retryCompute: bool, computation: NodeCode<'T>) =
},
(fun res ->
cachedResult <- Task.FromResult(res)
cachedResultNode <- node { return res }
cachedResultNode <- node.Return res
computation <- Unchecked.defaultof<_>
tcs.SetResult(res)
),
......
......@@ -252,7 +252,7 @@ type TcInfoNode =
static member FromState(state: TcInfoState) =
let tcInfo = state.TcInfo
let tcInfoExtras = state.TcInfoExtras
TcInfoNode(GraphNode(node { return tcInfo }), GraphNode(node { return tcInfo, defaultArg tcInfoExtras emptyTcInfoExtras }))
TcInfoNode(GraphNode(node.Return tcInfo), GraphNode(node.Return (tcInfo, defaultArg tcInfoExtras emptyTcInfoExtras)))
/// Bound model of an underlying syntax and typed tree.
[<Sealed>]
......@@ -448,8 +448,8 @@ type BoundModel private (tcConfig: TcConfig,
member private this.TypeCheck (partialCheck: bool) : NodeCode<TcInfoState> =
match partialCheck, tcInfoStateOpt with
| true, Some (PartialState _ as state)
| true, Some (FullState _ as state) -> node { return state }
| false, Some (FullState _ as state) -> node { return state }
| true, Some (FullState _ as state) -> node.Return state
| false, Some (FullState _ as state) -> node.Return state
| _ ->
node {
......@@ -1055,7 +1055,7 @@ module IncrementalBuilderStateHelpers =
| ValueSome(boundModel) when initialState.enablePartialTypeChecking && boundModel.BackingSignature.IsSome ->
let newBoundModel = boundModel.ClearTcInfoExtras()
{ state with
boundModels = state.boundModels.RemoveAt(slot).Insert(slot, GraphNode(node { return newBoundModel }))
boundModels = state.boundModels.RemoveAt(slot).Insert(slot, GraphNode(node.Return newBoundModel))
stampedFileNames = state.stampedFileNames.SetItem(slot, StampFileNameTask cache fileInfo)
}
| _ ->
......@@ -1130,7 +1130,7 @@ type IncrementalBuilderState with
let referencedAssemblies = initialState.referencedAssemblies
let cache = TimeStampCache(defaultTimeStamp)
let initialBoundModel = GraphNode(node { return initialBoundModel })
let initialBoundModel = GraphNode(node.Return initialBoundModel)
let boundModels = BlockBuilder.create fileNames.Length
for slot = 0 to fileNames.Length - 1 do
......@@ -1648,4 +1648,4 @@ type IncrementalBuilder(initialState: IncrementalBuilderInitialState, state: Inc
|> Array.map (fun (d, severity) -> FSharpDiagnostic.CreateFromException(d, severity, range.Zero, suggestNamesForErrors))
return builderOpt, diagnostics
}
}
\ No newline at end of file
......@@ -390,7 +390,7 @@ type BackgroundCompiler(
let createBuilderNode (options, userOpName, ct: CancellationToken) =
lock gate (fun () ->
if ct.IsCancellationRequested then
GraphNode(node { return None, [||] })
GraphNode(node.Return(None, [||]))
else
let getBuilderNode =
GraphNode(CreateOneIncrementalBuilder(options, userOpName))
......@@ -1412,5 +1412,4 @@ type CompilerEnvironment() =
/// Whether or not this file should be a single-file project
static member MustBeSingleFileProject file =
let ext = Path.GetExtension file
singleFileProjectExtensions |> List.exists(fun e-> 0 = String.Compare(e, ext, StringComparison.OrdinalIgnoreCase))
singleFileProjectExtensions |> List.exists(fun e-> 0 = String.Compare(e, ext, StringComparison.OrdinalIgnoreCase))
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册