@@ -3939,7 +3939,7 @@ let AddCxTypeEqualsType contextInfo denv css m expected actual =
39393939 PostponeOnFailedMemberConstraintResolution csenv NoTrace
39403940 ( fun csenv -> SolveTypeEqualsTypeWithReport csenv 0 m NoTrace None expected actual)
39413941 ErrorD
3942- |> RaiseOperationResult
3942+ |> ReportOperationResultAndRecover
39433943
39443944let UndoIfFailed f =
39453945 let trace = Trace.New()
@@ -4005,7 +4005,7 @@ let AddCxTypeMustSubsumeTypeMatchingOnlyUndoIfFailed denv css m extraRigidTypars
40054005let AddCxTypeMustSubsumeType contextInfo denv css m trace ty1 ty2 =
40064006 let csenv = MakeConstraintSolverEnv contextInfo css m denv
40074007 SolveTypeSubsumesTypeWithReport csenv 0 m trace None None ty1 ty2
4008- |> RaiseOperationResult
4008+ |> ReportOperationResultAndRecover
40094009
40104010let AddCxMethodConstraint denv css m trace traitInfo =
40114011 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
@@ -4017,25 +4017,25 @@ let AddCxMethodConstraint denv css m trace traitInfo =
40174017 |> OperationResult.ignore
40184018 })
40194019 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4020- |> RaiseOperationResult
4020+ |> ReportOperationResultAndRecover
40214021
40224022let AddCxTypeDefnNotSupportsNull denv css m trace ty =
40234023 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40244024 PostponeOnFailedMemberConstraintResolution csenv trace
40254025 ( fun csenv -> SolveTypeUseNotSupportsNull csenv 0 m trace ty)
40264026 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4027- |> RaiseOperationResult
4027+ |> ReportOperationResultAndRecover
40284028
40294029let AddCxTypeUseSupportsNull denv css m trace ty =
40304030 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40314031 PostponeOnFailedMemberConstraintResolution csenv trace
40324032 ( fun csenv -> SolveTypeUseSupportsNull csenv 0 m trace ty)
40334033 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4034- |> RaiseOperationResult
4034+ |> ReportOperationResultAndRecover
40354035
40364036let AddCxTypeCanCarryNullnessInfo denv css m ty nullness =
40374037 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
4038- let canCarryNullnessCheck () = SolveTypeCanCarryNullness csenv ty nullness |> RaiseOperationResult
4038+ let canCarryNullnessCheck () = SolveTypeCanCarryNullness csenv ty nullness |> ReportOperationResultAndRecover
40394039 csenv.SolverState.PushPostInferenceCheck ( preDefaults= false , check = canCarryNullnessCheck)
40404040
40414041
@@ -4044,63 +4044,63 @@ let AddCxTypeMustSupportComparison denv css m trace ty =
40444044 PostponeOnFailedMemberConstraintResolution csenv trace
40454045 ( fun csenv -> SolveTypeSupportsComparison csenv 0 m trace ty)
40464046 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4047- |> RaiseOperationResult
4047+ |> ReportOperationResultAndRecover
40484048
40494049let AddCxTypeMustSupportEquality denv css m trace ty =
40504050 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40514051 PostponeOnFailedMemberConstraintResolution csenv trace
40524052 ( fun csenv -> SolveTypeSupportsEquality csenv 0 m trace ty)
40534053 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4054- |> RaiseOperationResult
4054+ |> ReportOperationResultAndRecover
40554055
40564056let AddCxTypeMustSupportDefaultCtor denv css m trace ty =
40574057 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40584058 PostponeOnFailedMemberConstraintResolution csenv trace
40594059 ( fun csenv -> SolveTypeRequiresDefaultConstructor csenv 0 m trace ty)
40604060 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4061- |> RaiseOperationResult
4061+ |> ReportOperationResultAndRecover
40624062
40634063let AddCxTypeIsReferenceType denv css m trace ty =
40644064 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40654065 PostponeOnFailedMemberConstraintResolution csenv trace
40664066 ( fun csenv -> SolveTypeIsReferenceType csenv 0 m trace ty)
40674067 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4068- |> RaiseOperationResult
4068+ |> ReportOperationResultAndRecover
40694069
40704070let AddCxTypeIsValueType denv css m trace ty =
40714071 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40724072 PostponeOnFailedMemberConstraintResolution csenv trace
40734073 ( fun csenv -> SolveTypeIsNonNullableValueType csenv 0 m trace ty)
40744074 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4075- |> RaiseOperationResult
4075+ |> ReportOperationResultAndRecover
40764076
40774077let AddCxTypeIsUnmanaged denv css m trace ty =
40784078 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40794079 PostponeOnFailedMemberConstraintResolution csenv trace
40804080 ( fun csenv -> SolveTypeIsUnmanaged csenv 0 m trace ty)
40814081 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4082- |> RaiseOperationResult
4082+ |> ReportOperationResultAndRecover
40834083
40844084let AddCxTypeIsEnum denv css m trace ty underlying =
40854085 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40864086 PostponeOnFailedMemberConstraintResolution csenv trace
40874087 ( fun csenv -> SolveTypeIsEnum csenv 0 m trace ty underlying)
40884088 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4089- |> RaiseOperationResult
4089+ |> ReportOperationResultAndRecover
40904090
40914091let AddCxTypeIsDelegate denv css m trace ty aty bty =
40924092 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
40934093 PostponeOnFailedMemberConstraintResolution csenv trace
40944094 ( fun csenv -> SolveTypeIsDelegate csenv 0 m trace ty aty bty)
40954095 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4096- |> RaiseOperationResult
4096+ |> ReportOperationResultAndRecover
40974097
40984098let AddCxTyparDefaultsTo denv css m ctxtInfo tp ridx ty =
40994099 let csenv = MakeConstraintSolverEnv ctxtInfo css m denv
41004100 PostponeOnFailedMemberConstraintResolution csenv NoTrace
41014101 ( fun csenv -> AddConstraint csenv 0 m NoTrace tp ( TyparConstraint.DefaultsTo( ridx, ty, m)))
41024102 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4103- |> RaiseOperationResult
4103+ |> ReportOperationResultAndRecover
41044104
41054105let SolveTypeAsError denv css m ty =
41064106 let ty2 = NewErrorType ()
@@ -4204,14 +4204,14 @@ let CheckDeclaredTypars denv css m typars1 typars2 =
42044204 ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
42054205 |> RaiseOperationResult
42064206
4207- let CanonicalizePartialInferenceProblem css denv m tps =
4207+ let CanonicalizePartialInferenceProblem ( css : ConstraintSolverState ) ( denv : DisplayEnv ) ( m : range ) ( tps : Typar list ) : unit =
42084208 // Canonicalize constraints prior to generalization
42094209 let csenv = MakeConstraintSolverEnv ContextInfo.NoContext css m denv
42104210 let csenv = { csenv with ErrorOnFailedMemberConstraintResolution = true }
42114211 IgnoreFailedMemberConstraintResolution
42124212 ( fun () -> CanonicalizeRelevantMemberConstraints csenv 0 NoTrace tps)
42134213 ( fun res -> ErrorD ( ErrorFromAddingConstraint( denv, res, m)))
4214- |> RaiseOperationResult
4214+ |> ReportOperationResultAndRecover
42154215
42164216/// An approximation used during name resolution for intellisense to eliminate extension members which will not
42174217/// apply to a particular object argument. This is given as the isApplicableMeth argument to the partial name resolution
0 commit comments