Skip to content

Re-enable unused bindings detection #18420

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,6 @@
<IgnoreMibc Condition="'$(IgnoreMibc)' == ''">$(DotNetBuildSourceOnly)</IgnoreMibc>
</PropertyGroup>

<PropertyGroup>
<!-- TODO: These need to be removed once we merge/release the new SDK with noward and line fixes. -->
<NoWarn>$(NoWarn);FS0064;FS1182</NoWarn>
</PropertyGroup>

<!--
When developers load the FSharp.Compiler.Service solution we set FSHARPCORE_USE_PACKAGE to true if it hasn't already been set to a value.
This option ensures that building and testing uses the specified FSharp.Core nuget package instead of the local FSharp.Core project.
Expand Down
1 change: 1 addition & 0 deletions FSharp.sln
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Benchmarks"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D58BFE8B-7C85-4D3B-B5F3-9A7BB90FF1EE}"
ProjectSection(SolutionItems) = preProject
src\Compiler\default.win32manifest = src\Compiler\default.win32manifest
src\Compiler\FSComp.txt = src\Compiler\FSComp.txt
src\Compiler\FSCompCheck.fsx = src\Compiler\FSCompCheck.fsx
EndProjectSection
Expand Down
3 changes: 2 additions & 1 deletion FSharpBuild.Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
<SymStoreDirectory>$(ArtifactsDir)\SymStore</SymStoreDirectory>
<ProtoOutputPath>$(ArtifactsDir)\Bootstrap</ProtoOutputPath>
<ValueTupleImplicitPackageVersion>4.4.0</ValueTupleImplicitPackageVersion>
<WarningsAsErrors>1182;0025;$(WarningsAsErrors)</WarningsAsErrors>
<WarnOn>$(WarnOn);1182</WarnOn>
<WarningsAsErrors>0025;$(WarningsAsErrors)</WarningsAsErrors>
<OtherFlags>$(OtherFlags) --nowarn:3384</OtherFlags>
<OtherFlags>$(OtherFlags) --times --nowarn:75</OtherFlags>
<OtherFlags Condition="$(AdditionalFscCmdFlags) != ''">$(OtherFlags) $(AdditionalFscCmdFlags)</OtherFlags>
Expand Down
4 changes: 2 additions & 2 deletions src/Compiler/Checking/Expressions/CheckExpressions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -813,7 +813,7 @@ let TcConst (cenv: cenv) (overallTy: TType) m env synConst =
warning(Error(FSComp.SR.tcImplicitMeasureFollowingSlash(), m))
let factor1 = ms1 |> Option.defaultValue (SynMeasure.One Range.Zero)
Measure.Prod(tcMeasure factor1, Measure.Inv (tcMeasure ms2), ms.Range)
| SynMeasure.Divide(measure1 = ms1; measure2 = ms2; range= m) ->
| SynMeasure.Divide(measure1 = ms1; measure2 = ms2) ->
let factor1 = ms1 |> Option.defaultValue (SynMeasure.One Range.Zero)
Measure.Prod(tcMeasure factor1, Measure.Inv (tcMeasure ms2), ms.Range)
| SynMeasure.Seq(mss, _) -> ProdMeasures (List.map tcMeasure mss)
Expand Down Expand Up @@ -10686,7 +10686,7 @@ and TcMatchClauses cenv inputTy (resultTy: OverallTy) env tpenv clauses =
resultList,tpEnv

and TcMatchClause cenv inputTy (resultTy: OverallTy) env isFirst tpenv synMatchClause =
let (SynMatchClause(synPat, synWhenExprOpt, synResultExpr, patm, spTgt, trivia)) = synMatchClause
let (SynMatchClause(synPat, synWhenExprOpt, synResultExpr, patm, spTgt, _trivia)) = synMatchClause

let isTrueMatchClause =
if synMatchClause.IsTrueMatchClause then
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ let TcSequenceExpression (cenv: TcFileState) env tpenv comp (overallTy: OverallT

let tclauses, tpenv =
(tpenv, clauses)
||> List.mapFold (fun tpenv (SynMatchClause(pat, cond, innerComp, _, sp, trivia) as clause) ->
||> List.mapFold (fun tpenv (SynMatchClause(pat, cond, innerComp, _, sp, _trivia) as clause) ->
let isTrueMatchClause =
if clause.IsTrueMatchClause then
TcTrueMatchClause.Yes
Expand Down Expand Up @@ -319,7 +319,7 @@ let TcSequenceExpression (cenv: TcFileState) env tpenv comp (overallTy: OverallT
// Compile the pattern twice, once as a filter with all succeeding targets returning "1", and once as a proper catch block.
let clauses, tpenv =
(tpenv, withList)
||> List.mapFold (fun tpenv (SynMatchClause(pat, cond, innerComp, m, sp, trivia) as clause) ->
||> List.mapFold (fun tpenv (SynMatchClause(pat, cond, innerComp, m, sp, _trivia) as clause) ->
let isTrueMatchClause =
if clause.IsTrueMatchClause then
TcTrueMatchClause.Yes
Expand Down
2 changes: 1 addition & 1 deletion src/Compiler/Checking/TailCallChecks.fs
Original file line number Diff line number Diff line change
Expand Up @@ -794,7 +794,7 @@ let CheckModuleBinding cenv (isRec: bool) (TBind _ as bind) =
| Expr.Op(args = exprs) -> exprs |> Seq.iter (checkTailCall insideSubBindingOrTry)
| Expr.Sequential(expr1 = expr1; expr2 = expr2) ->
match expr1 with
| Expr.Op(args = exprs; op = TOp.IntegerForLoop _) -> checkTailCall insideSubBindingOrTry expr1
| Expr.Op(op = TOp.IntegerForLoop _) -> checkTailCall insideSubBindingOrTry expr1
| _ -> ()

checkTailCall insideSubBindingOrTry expr2
Expand Down
4 changes: 2 additions & 2 deletions src/Compiler/Checking/infos.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1438,10 +1438,10 @@ type MethInfo =
match retTy with
| Some retTy -> isTyparTy g retTy
| None -> false
| MethInfoWithModifiedReturnType(_,retTy) -> false
| MethInfoWithModifiedReturnType _ -> false
| DefaultStructCtor _ -> false
#if !NO_TYPEPROVIDERS
| ProvidedMeth(amap, mi, _, m) -> false
| ProvidedMeth _ -> false
#endif

/// Get the ParamData objects for the parameters of a MethInfo
Expand Down
1 change: 0 additions & 1 deletion src/Compiler/CodeGen/EraseUnions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1211,7 +1211,6 @@ let convAlternativeDef
let basicCtorFields =
basicFields
|> List.map (fun fdef ->
let existingAttrs = fdef.CustomAttrs.AsArray()
let nullableAttr = getFieldsNullability g fdef |> Option.toList
fdef.Name, fdef.FieldType, nullableAttr)

Expand Down
2 changes: 1 addition & 1 deletion src/Compiler/Driver/CompilerDiagnostics.fs
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,7 @@ type Exception with
showNullnessAnnotations = Some true
}

let t1, t2, _cxs = NicePrint.minimalStringsOfTwoTypes denv ty1 ty2
let t1, _t2, _cxs = NicePrint.minimalStringsOfTwoTypes denv ty1 ty2

os.Append(ConstraintSolverNullnessWarningEquivWithTypesE().Format t1) |> ignore

Expand Down
8 changes: 1 addition & 7 deletions src/Compiler/FSharp.Compiler.Service.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
<NoWarn>$(NoWarn);75</NoWarn> <!-- InternalCommandLineOption -->
<NoWarn>$(NoWarn);1204</NoWarn> <!-- This construct is for use in the FSharp.Core library and should not be used directly -->
<NoWarn>$(NoWarn);NU5125</NoWarn>
<NoWarn>$(NoWarn);64;1182;1204</NoWarn> <!--Temporary fix for sourcebuild -->
<OtherFlags>$(OtherFlags) --warnaserror-:1182</OtherFlags> <!--Temporary fix for sourcebuild -->
<NoWarn>$(NoWarn);64;1204</NoWarn> <!--Temporary fix for sourcebuild -->
<AssemblyName>FSharp.Compiler.Service</AssemblyName>
<AllowCrossTargeting>true</AllowCrossTargeting>
<DefineConstants>$(DefineConstants);COMPILER</DefineConstants>
Expand All @@ -26,11 +25,6 @@
<TargetFrameworks Condition=" '$(OfficialBuildId)' == '' AND '$(FSharpNetCoreProductTargetFramework)' != '' AND '$(Configuration)' != 'Proto' AND '$(SKIP_NETCURRENT_FSC_BUILD)' != 'true' ">$(FSharpNetCoreProductTargetFramework);$(TargetFrameworks)</TargetFrameworks>
<DefineConstants Condition="'$(FSHARPCORE_USE_PACKAGE)' == 'true'">$(DefineConstants);FSHARPCORE_USE_PACKAGE</DefineConstants>
<OtherFlags>$(OtherFlags) --extraoptimizationloops:1</OtherFlags>

<!-- TODO: This needs to be re-enabled once we merge/release the new SDK with noward and line fixes. -->
<!-- 1182: Unused variables -->
<OtherFlags>$(OtherFlags) --nowarn:1182</OtherFlags>

<!-- 3218: ArgumentsInSigAndImplMismatch -->
<OtherFlags>$(OtherFlags) --warnon:3218</OtherFlags>
<!-- 3390: xmlDocBadlyFormed -->
Expand Down
2 changes: 1 addition & 1 deletion src/Compiler/Facilities/AsyncMemoize.fs
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ type internal AsyncMemoize<'TKey, 'TVersion, 'TValue
when 'TKey: equality and 'TVersion: equality and 'TKey: not null and 'TVersion: not null>
(?keepStrongly, ?keepWeakly, ?name: string, ?cancelUnawaitedJobs: bool, ?cancelDuplicateRunningJobs: bool) =

let name = defaultArg name "N/A"
let _name = defaultArg name "N/A"
let cancelUnawaitedJobs = defaultArg cancelUnawaitedJobs true
let cancelDuplicateRunningJobs = defaultArg cancelDuplicateRunningJobs false

Expand Down
2 changes: 1 addition & 1 deletion src/Compiler/Service/TransparentCompiler.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2355,7 +2355,7 @@ type internal TransparentCompiler
(
fileName: string,
sourceText: ISourceTextNew,
caret: Position option,
_caret: Position option,
documentSource: DocumentSource,
previewEnabled: bool option,
loadedTimeStamp: DateTime option,
Expand Down
2 changes: 0 additions & 2 deletions src/Compiler/SyntaxTree/LexerStore.fs
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ let private tryGetStoreData<'T when 'T: not null> (lexbuf: Lexbuf) key =
| true, data -> Some(data :?> 'T)
| _ -> None

let private setStoreData (lexbuf: Lexbuf) key data = lexbuf.BufferLocalStore[key] <- data

//------------------------------------------------------------------------
// A SynArgNameGenerator for the current file, used by the parser
//------------------------------------------------------------------------
Expand Down
6 changes: 3 additions & 3 deletions src/Compiler/SyntaxTree/SyntaxTreeOps.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1024,9 +1024,9 @@ let parsedHashDirectiveArgumentsNoCheck (input: ParsedHashDirectiveArgument list
(function
| ParsedHashDirectiveArgument.String(s, _, _) -> s
| ParsedHashDirectiveArgument.SourceIdentifier(_, v, _) -> v
| ParsedHashDirectiveArgument.Int32(n, m) -> string n
| ParsedHashDirectiveArgument.Ident(ident, m) -> ident.idText
| ParsedHashDirectiveArgument.LongIdent(ident, m) -> longIdentToString ident)
| ParsedHashDirectiveArgument.Int32(n, _) -> string n
| ParsedHashDirectiveArgument.Ident(ident, _) -> ident.idText
| ParsedHashDirectiveArgument.LongIdent(ident, _) -> longIdentToString ident)
input

let parsedHashDirectiveStringArguments (input: ParsedHashDirectiveArgument list) (_langVersion: LanguageVersion) =
Expand Down
4 changes: 2 additions & 2 deletions src/Compiler/TypedTree/TypedTreeOps.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9241,7 +9241,7 @@ let GetDisallowedNullness (g:TcGlobals) (ty:TType) =
| None -> []
| Some t -> hasWithNullAnyWhere t withNull

| TType_app (tcr, tinst, nullnessOrig) ->
| TType_app (tcr, tinst, _) ->
let tyArgs = tinst |> List.collect (fun t -> hasWithNullAnyWhere t false)

match alreadyWrappedInOuterWithNull, tcr.TypeAbbrev with
Expand All @@ -9260,7 +9260,7 @@ let GetDisallowedNullness (g:TcGlobals) (ty:TType) =
let inner = tupTypes |> List.collect (fun t -> hasWithNullAnyWhere t false)
if alreadyWrappedInOuterWithNull then ty :: inner else inner

| TType_anon (anon,tys) ->
| TType_anon (tys=tys) ->
let inner = tys |> List.collect (fun t -> hasWithNullAnyWhere t false)
if alreadyWrappedInOuterWithNull then ty :: inner else inner
| TType_fun (d, r, _) ->
Expand Down
2 changes: 1 addition & 1 deletion src/FSharp.Build/CreateFSharpManifestResourceName.fs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ type CreateFSharpManifestResourceName public () =
linkFileName: string,
rootNamespace: string, // may be null
dependentUponFileName: string, // may be null
binaryStream: Stream // may be null
_binaryStream: Stream // may be null
) : string =

// The Visual CSharp and XBuild CSharp toolchains transform resource names like this:
Expand Down
8 changes: 4 additions & 4 deletions src/FSharp.Build/FSharpEmbedResourceText.fs
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@ open Printf
let lines =
File.ReadAllLines(fileName)
|> Array.mapi (fun i s -> i, s) // keep line numbers
|> Array.filter (fun (i, s) -> not (s.StartsWith "#")) // filter out comments
|> Array.filter (fun (_i, s) -> not (s.StartsWith "#")) // filter out comments

printMessage "Parsing %s" fileName
let stringInfos = lines |> Array.map (fun (i, s) -> ParseLine fileName i s)
Expand Down Expand Up @@ -511,7 +511,7 @@ open Printf
printMessage "Generating resource methods for %s" outFileName
// gen each resource method
stringInfos
|> Seq.iter (fun (lineNum, (optErrNum, ident), str, holes, netFormatString) ->
|> Seq.iter (fun (lineNum, (optErrNum, ident), str, holes, _netFormatString) ->
let formalArgs = new System.Text.StringBuilder()
let actualArgs = new System.Text.StringBuilder()
let mutable firstTime = true
Expand Down Expand Up @@ -589,7 +589,7 @@ open Printf
fprintfn outSignature " static member RunStartupValidation: unit -> unit"

stringInfos
|> Seq.iter (fun (lineNum, (optErrNum, ident), str, holes, netFormatString) ->
|> Seq.iter (fun (_lineNum, (_optErrNum, ident), _str, _holes, _netFormatString) ->
fprintfn out " ignore(GetString(\"%s\"))" ident)

fprintfn out " ()" // in case there are 0 strings, we need the generated code to parse
Expand All @@ -598,7 +598,7 @@ open Printf
xd.LoadXml(xmlBoilerPlateString)

stringInfos
|> Seq.iter (fun (lineNum, (optErrNum, ident), str, holes, netFormatString) ->
|> Seq.iter (fun (_lineNum, (_optErrNum, ident), _str, _holes, netFormatString) ->
let xn = xd.CreateElement("data")
xn.SetAttribute("name", ident) |> ignore
xn.SetAttribute("xml:space", "preserve") |> ignore
Expand Down
5 changes: 1 addition & 4 deletions src/FSharp.Build/Fsc.fs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ type public Fsc() as this =
let mutable tailcalls: bool = true
let mutable targetProfile: string MaybeNull = null
let mutable targetType: string MaybeNull = null
let mutable toolExe: string = "fsc.exe"

let defaultToolPath =
let locationOfThisDll =
Expand Down Expand Up @@ -733,8 +732,6 @@ type public Fsc() as this =
match host with
| null -> base.ExecuteTool(pathToTool, responseFileCommands, commandLineCommands)
| _ ->
let sources = sources |> Array.map (fun i -> i.ItemSpec)

let invokeCompiler baseCallDelegate =
try
let ret =
Expand Down Expand Up @@ -765,7 +762,7 @@ type public Fsc() as this =
->
fsc.Log.LogError(tie.InnerException.Message, [||])
-1
| e -> reraise ()
| _ -> reraise ()

let baseCallDelegate =
Func<int>(fun () -> fsc.BaseExecuteTool(pathToTool, responseFileCommands, commandLineCommands))
Expand Down
3 changes: 0 additions & 3 deletions src/FSharp.Build/Fsi.fs
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,12 @@ type public Fsi() as this =
let mutable provideCommandLineArgs = false
let mutable references: ITaskItem[] = [||]
let mutable referencePath: string MaybeNull = null
let mutable resources: ITaskItem[] = [||]
let mutable skipCompilerExecution = false
let mutable sources: ITaskItem[] = [||]
let mutable loadSources: ITaskItem[] = [||]
let mutable useSources: ITaskItem[] = [||]
let mutable tailcalls: bool = true
let mutable targetProfile: string MaybeNull = null
let mutable targetType: string MaybeNull = null
let mutable toolExe: string = "fsi.exe"

let mutable toolPath: string =
let locationOfThisDll =
Expand Down
2 changes: 1 addition & 1 deletion src/FSharp.Build/MapSourceRoots.fs
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ type MapSourceRoots() =

for root in mappedSourceRoots do
match root.GetMetadata SourceControl with
| HasValue v when isSourceControlled -> mapNestedRootIfEmpty root
| HasValue _ when isSourceControlled -> mapNestedRootIfEmpty root
| NullOrEmpty when not isSourceControlled -> mapNestedRootIfEmpty root
| _ -> ()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<AssemblyName>FSharp.DependencyManager.Nuget</AssemblyName>
<AllowCrossTargeting>true</AllowCrossTargeting>
<DefineConstants>$(DefineConstants);COMPILER</DefineConstants>
<OtherFlags>$(OtherFlags) --warnon:1182</OtherFlags>
<Tailcalls>true</Tailcalls> <!-- .tail annotations always emitted for this binary, even in debug mode -->
<Configurations>Debug;Release</Configurations>
</PropertyGroup>
Expand Down
2 changes: 2 additions & 0 deletions tests/FSharp.Build.UnitTests/MapSourceRootsTests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ open Xunit
open System.Collections.Generic
open FSharp.Test

#nowarn "1182" //Unused arguments

type MockEngine() =
member val Errors = ResizeArray() with get
member val Warnings = ResizeArray() with get
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ type DependencyManagerInteractiveTests() =
let getErrors ((_value: Result<FsiValue option, exn>), (errors: FSharpDiagnostic[])) =
errors

let ignoreValue = getValue >> ignore

[<Fact>]
member _.``SmokeTest - #r nuget``() =
let text = """
Expand All @@ -58,7 +56,7 @@ type DependencyManagerInteractiveTests() =
#r @"nuget:System.Collections.Immutable.DoesNotExist, version=1.5.0"
0"""
use script = new scriptHost()
let opt, errors = script.Eval(text)
let _opt, errors = script.Eval(text)
Assert.Equal(errors.Length, 1)

(*
Expand Down Expand Up @@ -152,8 +150,6 @@ type DependencyManagerInteractiveTests() =

[<Fact>]
member _.``Multiple Instances of DependencyProvider should be isolated``() =

let assemblyProbingPaths () = Seq.empty<string>
let nativeProbingRoots () = Seq.empty<string>

use dp1 = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots), false)
Expand Down Expand Up @@ -282,7 +278,6 @@ TorchSharp.Tensor.LongTensor.From([| 0L .. 100L |]).Device
| ErrorReportType.Warning -> printfn "PackageManagementWarning %d : %s" code message
ResolvingErrorReport (report)

let mutable resolverPackageRoots = Seq.empty<string>
let mutable resolverPackageRoots = Seq.empty<string>
let mutable resolverReferences = Seq.empty<string>

Expand Down Expand Up @@ -383,11 +378,9 @@ printfn ""%A"" result
ResolvingErrorReport (report)

let mutable resolverPackageRoots = Seq.empty<string>
let mutable resolverPackageRoots = Seq.empty<string>

let mutable resolverReferences = Seq.empty<string>
let nativeProbingRoots () = resolverPackageRoots
let assemblyPaths () = resolverReferences

// Restore packages, Get Reference dll paths and package roots
let result =
Expand Down Expand Up @@ -526,10 +519,7 @@ x |> Seq.iter(fun r ->
ResolvingErrorReport (report)

let mutable resolverPackageRoots = Seq.empty<string>
let mutable resolverReferences = Seq.empty<string>

let nativeProbingRoots () = resolverPackageRoots
let assemblyProbingPaths () = resolverReferences

// Restore packages, Get Reference dll paths and package roots
let result =
Expand All @@ -552,10 +542,7 @@ x |> Seq.iter(fun r ->
ResolvingErrorReport (report)

let mutable resolverPackageRoots = Seq.empty<string>
let mutable resolverReferences = Seq.empty<string>

let nativeProbingRoots () = resolverPackageRoots
let assemblyProbingPaths () = resolverReferences

// Restore packages, Get Reference dll paths and package roots
let result =
Expand Down Expand Up @@ -740,7 +727,7 @@ x |> Seq.iter(fun r ->
use script = new FSharpScript(quiet = false, langVersion = LangVersion.V47)

use capture = new TestConsole.ExecutionCapture()
let opt = script.Eval("#help") |> getValue
let _opt = script.Eval("#help") |> getValue

let output = capture.OutText

Expand Down Expand Up @@ -772,7 +759,7 @@ x |> Seq.iter(fun r ->
use script = new FSharpScript(quiet = false, langVersion = LangVersion.Preview)

use capture = new TestConsole.ExecutionCapture()
let opt = script.Eval("#help") |> getValue
let _opt = script.Eval("#help") |> getValue

let output = capture.OutText

Expand Down Expand Up @@ -871,7 +858,7 @@ x |> Seq.iter(fun r ->
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")

// Resolve and cache the results won't time out
let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=10000"|], reportError, "net9.0", null, "", "", "", -1) // Wait forever
let _result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=10000"|], reportError, "net9.0", null, "", "", "", -1) // Wait forever

// Clear the results
foundCorrectError <- false
Expand Down
Loading