Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
1f68b17
migrate (as a separate copy) fsharpqa tests that are going to be impa…
smoothdeveloper Apr 30, 2019
d0630a3
update the .bsl files
smoothdeveloper Apr 30, 2019
c01329f
remove comments that are handled by baseline files, update baseline f…
smoothdeveloper Apr 30, 2019
56fbe7a
remove the migrated tests from fsharpqa tests
smoothdeveloper Apr 30, 2019
632f8ee
need to be more careful when migrating those
smoothdeveloper Apr 30, 2019
bcd4068
testing if running the test with .fs instead of .fsx makes them work …
smoothdeveloper Apr 30, 2019
55bc729
exclude migrated fsharpqa from dotnet core run
smoothdeveloper Apr 30, 2019
823c53a
sample test in fsharpqa (can't run locally for now)
smoothdeveloper Apr 20, 2019
9671f33
trying to make it green now.
smoothdeveloper Apr 21, 2019
2eb3b56
checking if this path is covered by a test, trying to identify how to…
smoothdeveloper Apr 21, 2019
7781572
* [MethodCalls.fs] Defining CallerArgs<'T> in, this replaces passing …
smoothdeveloper Apr 22, 2019
81ef5f2
bit of refactoring of error message building logic during failed over…
smoothdeveloper Apr 23, 2019
69cbc05
(buildfix) harmonizing .fsi/.fs right before commit doesn't always wo…
smoothdeveloper Apr 23, 2019
9f47fee
trying to check what kind of things break loose when I change this
smoothdeveloper Apr 24, 2019
41b219c
(minor) [ConstraintSolver.fs] revert space mishapps to reduce diff, p…
smoothdeveloper Apr 24, 2019
7f73826
toward displaying the argument names properly (may fail some fsharpqa…
smoothdeveloper Apr 24, 2019
0904de6
missing Resharper's Ctrl+Alt+V "introduce variable" refactoring @audu…
smoothdeveloper Apr 24, 2019
f1eadef
pretty print unresolved overloads without all the type submsumption p…
smoothdeveloper Apr 25, 2019
9eb633a
Overload resolution error messages: things display like I want in fsi…
smoothdeveloper Apr 25, 2019
b49d285
adjust message for candidates overload
smoothdeveloper Apr 26, 2019
6aaf2dd
Hijack the split phase for UnresolvedOverloading, remove the match on…
smoothdeveloper Apr 29, 2019
f66e082
updating existing failing baseline files that looks correct to me
smoothdeveloper Apr 29, 2019
3f03717
quickfix for update.base.line.with.actuals.fsx so that it skips missi…
smoothdeveloper Apr 29, 2019
389a804
(minor) minimize diff, typos, comments
smoothdeveloper Apr 30, 2019
dbe7a37
fix vsintegration tests affected by overload error message changes
smoothdeveloper Apr 30, 2019
f8e7428
merge issue unused variable warning
smoothdeveloper Apr 30, 2019
c51e25c
update the 12 fsharpqa migrated baseline with new error messages
smoothdeveloper Apr 30, 2019
41f57e1
(minor) baseline update script
smoothdeveloper Apr 30, 2019
51e3a0e
move System.Convert.ToString and System.Threading.Tasks.Task.Run test…
smoothdeveloper Apr 30, 2019
76c9c59
* moving 3 fsharpqa tests to new test suite
smoothdeveloper May 2, 2019
b00175f
consolidate all string building logic in CompileOps.fs, fix remaining…
smoothdeveloper May 2, 2019
e64f4f6
update base lines
smoothdeveloper May 2, 2019
db5df8d
remove the migrated tests from fsharpqa
smoothdeveloper May 2, 2019
dce9b92
fix vstest error message
smoothdeveloper May 2, 2019
36b6a13
fix env.lst, removed wrong one...
smoothdeveloper May 2, 2019
bf4ee09
update baselines of remaining tests
smoothdeveloper May 2, 2019
f45a218
adding one simple test with many overloads
smoothdeveloper May 2, 2019
ce65f30
appropriate /// comments on `CalledMeth` constructor arguments
smoothdeveloper May 2, 2019
372a375
minimize diff / formatting
smoothdeveloper May 2, 2019
db26509
trim unused code
smoothdeveloper May 2, 2019
46174af
add simple test, one message is interesting, mentioning parameter cou…
smoothdeveloper May 3, 2019
c2120f6
comment flaky test for now
smoothdeveloper May 3, 2019
ec6089c
code review on the `coerceExpr` function from @tihan, we can discard …
smoothdeveloper May 8, 2019
4f51ad4
code formatting remarks on ConstraintSolver.fs/fsi
smoothdeveloper May 14, 2019
2d27e63
(minor) formatting
smoothdeveloper May 14, 2019
28f46ca
format known argument type / updating .bsl
smoothdeveloper May 16, 2019
20abb54
update missing baseline
smoothdeveloper May 16, 2019
c5de0ac
update missing baselines
smoothdeveloper May 16, 2019
e08db81
update missing baseline
smoothdeveloper May 16, 2019
628d8bc
minor: make TTrait better in debugger display
smoothdeveloper Aug 24, 2019
e2bc962
[wip] pass TraitConstraintInfo around failed overload resolution erro…
smoothdeveloper Aug 24, 2019
4f70822
minimize diff
smoothdeveloper Aug 27, 2019
138267f
signature file mismatch
smoothdeveloper Aug 27, 2019
ebf60fa
removing duplicate in fscomp.txt
smoothdeveloper Dec 27, 2019
20a4cff
surfacing initial bits of TraitConstraintInfo, roughly for now
smoothdeveloper Dec 27, 2019
5bb714a
formatting types of known argument in one go, the formatting is still…
smoothdeveloper Jan 12, 2020
59f82b1
rework of overload failure message to prettify *ALL* types in a singl…
smoothdeveloper Jan 15, 2020
7b8fdfc
fixup the tests and add two tests
smoothdeveloper Jan 15, 2020
a956bce
updating baselines that got tighter.
smoothdeveloper Jan 16, 2020
8b102a0
simplify handling of TraitConstraintInfo
smoothdeveloper Jan 16, 2020
8543f80
naming couple of fields and turning a property to a methods as it tri…
smoothdeveloper Jan 17, 2020
c5739e7
comments in the assembling of overload resolution error message
smoothdeveloper Jan 17, 2020
ade30f5
Add information about which argument doesn't match
smoothdeveloper Jan 19, 2020
207a584
minor updates to testguide and devguide
smoothdeveloper Jan 19, 2020
7ca85af
fix PrimitiveConstraints.``Invalid object constructor`` test
smoothdeveloper Jan 19, 2020
723a293
fix(?) salsa tests
smoothdeveloper Jan 19, 2020
f0be1bb
minimize diff
smoothdeveloper Jan 19, 2020
373f0f3
put back tests under !FSHARP_SUITE_DRIVES_CORECLR_TESTS
smoothdeveloper Jan 19, 2020
4c7d525
missing updated message
smoothdeveloper Jan 19, 2020
5408e4f
minor adjustments to TESTGUIDE.md
smoothdeveloper Jan 19, 2020
e8dc47b
return type was missing prettifying in prettyLayoutsOfUnresolvedOverl…
smoothdeveloper Jan 19, 2020
99097a6
address code review nits / minimize diff / add comment on PrettifyDis…
smoothdeveloper Jan 22, 2020
99c1230
minimize diff
smoothdeveloper Jan 22, 2020
9f20d8f
proposed work around the flaky error message until https://github.com…
smoothdeveloper Jan 22, 2020
45be9dc
fixing baselines of new tests from master
smoothdeveloper Jan 22, 2020
18cbe3c
sisyphus round of baseline update
smoothdeveloper Jan 22, 2020
c7d8b13
removing type which isn't in use and popped back up after rebase
smoothdeveloper Jan 22, 2020
209cc6c
minimize diff
smoothdeveloper Jan 23, 2020
1f17d51
tidy inconsistent tuple literal
smoothdeveloper Jan 23, 2020
90defce
* removing TTrait properties that end up not being used
smoothdeveloper Jan 23, 2020
d99015f
minimize diff
smoothdeveloper Jan 23, 2020
3176d37
minimize diff
smoothdeveloper Jan 23, 2020
97ebec3
minimize diff
smoothdeveloper Jan 23, 2020
61478c2
link to usage example in same file
smoothdeveloper Jan 24, 2020
304f505
revert converting CallerArg single cased DU into Record
smoothdeveloper Jan 29, 2020
4352bad
minimize diff
smoothdeveloper Jan 29, 2020
f18a205
minimize diff
smoothdeveloper Jan 29, 2020
7cf610d
minimize diff
smoothdeveloper Jan 29, 2020
5eff584
fix rebase glitches
smoothdeveloper Feb 15, 2020
0d99fef
fix rebase glitch
smoothdeveloper Feb 15, 2020
95fe837
update baseline
smoothdeveloper Feb 15, 2020
4141681
fix base lines / new tests base lines
smoothdeveloper Feb 15, 2020
3042bda
edge case: needs a new line after "A unique overload for method '%s' …
smoothdeveloper Feb 15, 2020
e03f680
updating base line for edge case of missing new line
smoothdeveloper Feb 15, 2020
1b0530d
missing baseline
smoothdeveloper Feb 15, 2020
9ab9ea9
removing comment
smoothdeveloper Feb 18, 2020
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
Prev Previous commit
Next Next commit
Add information about which argument doesn't match
Add couple of tests
Updating bunch of baselines
  • Loading branch information
smoothdeveloper committed Feb 15, 2020
commit ade30f5ea79b6c99f164a6575379df7a378daef3
15 changes: 14 additions & 1 deletion src/fsharp/CompileOps.fs
Original file line number Diff line number Diff line change
Expand Up @@ -811,10 +811,23 @@ let OutputPhasedErrorR (os: StringBuilder) (err: PhasedDiagnostic) (canSuggestNa
| [_] -> Some (FSComp.SR.csNoOverloadsFoundTypeParametersPrefixSingular genericParametersMessage)
| _ -> Some (FSComp.SR.csNoOverloadsFoundTypeParametersPrefixPlural genericParametersMessage)

let overloadMethodInfo displayEnv m (x: OverloadInformation) =
let paramInfo =
match x.error with
| :? ArgDoesNotMatchError as x ->
let nameOrOneBasedIndexMessage =
x.calledArg.NameOpt
|> Option.map (fun n -> FSComp.SR.csOverloadCandidateNamedArgumentTypeMismatch n.idText)
|> Option.defaultValue (FSComp.SR.csOverloadCandidateIndexedArgumentTypeMismatch ((snd x.calledArg.Position) + 1))
sprintf " // %s" nameOrOneBasedIndexMessage
| _ -> ""

(NicePrint.stringOfMethInfo x.amap m displayEnv x.methodSlot.Method) + paramInfo

let nl = System.Environment.NewLine
let formatOverloads (overloads: OverloadInformation list) =
overloads
|> List.map (fun overload -> overload.OverloadMethodInfo denv m)
|> List.map (overloadMethodInfo denv m)
|> List.sort
|> List.map FSComp.SR.formatDashItem
|> String.concat nl
Expand Down
33 changes: 20 additions & 13 deletions src/fsharp/ConstraintSolver.fs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,6 @@ type OverloadInformation =
amap : ImportMap
error: exn
}
member x.OverloadMethodInfo displayEnv m = NicePrint.stringOfMethInfo x.amap m displayEnv x.methodSlot.Method

/// Cases for overload resolution failure that exists in the implementation of the compiler.
type OverloadResolutionFailure =
Expand Down Expand Up @@ -523,6 +522,11 @@ exception AbortForFailedOverloadResolution
let inline TryD_IgnoreAbortForFailedOverloadResolution f1 f2 =
TryD f1 (function AbortForFailedOverloadResolution -> CompleteD | exn -> f2 exn)

exception LocallyAbortOperationThatFailsToResolveOverload

/// used to provide detail about non matched argument in overload resolution error message
exception ArgDoesNotMatchError of error: ErrorsFromAddingSubsumptionConstraint * calledMeth: CalledMeth<Expr> * calledArg: CalledArg * callerArg: CallerArg<Expr>

/// Represents a very local condition where we prefer to report errors before stripping type abbreviations.
exception LocallyAbortOperationThatLosesAbbrevs

Expand Down Expand Up @@ -2180,7 +2184,6 @@ and SolveTypeRequiresDefaultConstructor (csenv: ConstraintSolverEnv) ndeep m2 tr
CompleteD
| _ ->
ErrorD (ConstraintSolverError(FSComp.SR.csGenericConstructRequiresPublicDefaultConstructor(NicePrint.minimalStringOfType denv origTy), m, m2))

// Parameterized compatibility relation between member signatures. The real work
// is done by "equateTypes" and "subsumeTypes" and "subsumeArg"
and CanMemberSigsMatchUpToCheck
Expand Down Expand Up @@ -2280,18 +2283,21 @@ and CanMemberSigsMatchUpToCheck
//
// "ty2 casts to ty1"
// "a value of type ty2 can be used where a value of type ty1 is expected"
and private SolveTypeSubsumesTypeWithReport (csenv: ConstraintSolverEnv) ndeep m trace cxsln ty1 ty2 =
and private SolveTypeSubsumesTypeWithWrappedContextualReport (csenv: ConstraintSolverEnv) ndeep m trace cxsln ty1 ty2 wrapper =
TryD_IgnoreAbortForFailedOverloadResolution
(fun () -> SolveTypeSubsumesTypeKeepAbbrevs csenv ndeep m trace cxsln ty1 ty2)
(fun res ->
match csenv.eContextInfo with
| ContextInfo.RuntimeTypeTest isOperator ->
// test if we can cast other way around
match CollectThenUndo (fun newTrace -> SolveTypeSubsumesTypeKeepAbbrevs csenv ndeep m (OptionalTrace.WithTrace newTrace) cxsln ty2 ty1) with
| OkResult _ -> ErrorD (ErrorsFromAddingSubsumptionConstraint(csenv.g, csenv.DisplayEnv, ty1, ty2, res, ContextInfo.DowncastUsedInsteadOfUpcast isOperator, m))
| _ -> ErrorD (ErrorsFromAddingSubsumptionConstraint(csenv.g, csenv.DisplayEnv, ty1, ty2, res, ContextInfo.NoContext, m))
| _ -> ErrorD (ErrorsFromAddingSubsumptionConstraint(csenv.g, csenv.DisplayEnv, ty1, ty2, res, csenv.eContextInfo, m)))
| OkResult _ -> ErrorD (wrapper (ErrorsFromAddingSubsumptionConstraint(csenv.g, csenv.DisplayEnv, ty1, ty2, res, ContextInfo.DowncastUsedInsteadOfUpcast isOperator, m)))
| _ -> ErrorD (wrapper (ErrorsFromAddingSubsumptionConstraint(csenv.g, csenv.DisplayEnv, ty1, ty2, res, ContextInfo.NoContext, m)))
| _ -> ErrorD (wrapper (ErrorsFromAddingSubsumptionConstraint(csenv.g, csenv.DisplayEnv, ty1, ty2, res, csenv.eContextInfo, m))))

and private SolveTypeSubsumesTypeWithReport (csenv: ConstraintSolverEnv) ndeep m trace cxsln ty1 ty2 =
SolveTypeSubsumesTypeWithWrappedContextualReport (csenv) ndeep m trace cxsln ty1 ty2 id

// ty1: actual
// ty2: expected
and private SolveTypeEqualsTypeWithReport (csenv: ConstraintSolverEnv) ndeep m trace cxsln actual expected =
Expand Down Expand Up @@ -2324,9 +2330,9 @@ and MustUnify csenv ndeep trace cxsln ty1 ty2 =
and MustUnifyInsideUndo csenv ndeep trace cxsln ty1 ty2 =
SolveTypeEqualsTypeWithReport csenv ndeep csenv.m (WithTrace trace) cxsln ty1 ty2

and ArgsMustSubsumeOrConvertInsideUndo (csenv: ConstraintSolverEnv) ndeep trace cxsln isConstraint calledArg callerArg =
and ArgsMustSubsumeOrConvertInsideUndo (csenv: ConstraintSolverEnv) ndeep trace cxsln isConstraint calledMeth calledArg callerArg =
let calledArgTy = AdjustCalledArgType csenv.InfoReader isConstraint calledArg callerArg
SolveTypeSubsumesTypeWithReport csenv ndeep callerArg.Range (WithTrace trace) cxsln calledArgTy callerArg.ArgumentType
SolveTypeSubsumesTypeWithWrappedContextualReport csenv ndeep callerArg.Range (WithTrace trace) cxsln calledArgTy callerArg.ArgumentType (fun e -> ArgDoesNotMatchError(e :?> _, calledMeth, calledArg, callerArg))

and TypesMustSubsumeOrConvertInsideUndo (csenv: ConstraintSolverEnv) ndeep trace cxsln m calledArgTy callerArgTy =
SolveTypeSubsumesTypeWithReport csenv ndeep m trace cxsln calledArgTy callerArgTy
Expand Down Expand Up @@ -2499,7 +2505,7 @@ and ResolveOverloading
// Exact match rule.
//
// See what candidates we have based on current inferred type information
// and _exact_ matches of argument types.
// and _exact_ matches of argument types.
match candidates |> FilterEachThenUndo (fun newTrace calledMeth ->
let cxsln = Option.map (fun traitInfo -> (traitInfo, MemberConstraintSolutionOfMethInfo csenv.SolverState m calledMeth.Method calledMeth.CalledTyArgs)) cx
CanMemberSigsMatchUpToCheck
Expand All @@ -2525,7 +2531,7 @@ and ResolveOverloading
alwaysCheckReturn
(MustUnifyInsideUndo csenv ndeep newTrace cxsln)
(TypesMustSubsumeOrConvertInsideUndo csenv ndeep (WithTrace newTrace) cxsln m)
(ArgsMustSubsumeOrConvertInsideUndo csenv ndeep newTrace cxsln cx.IsSome)
(ArgsMustSubsumeOrConvertInsideUndo csenv ndeep newTrace cxsln cx.IsSome candidate)
reqdRetTyOpt
candidate)

Expand Down Expand Up @@ -2561,11 +2567,12 @@ and ResolveOverloading
alwaysCheckReturn
(MustUnifyInsideUndo csenv ndeep newTrace cxsln)
(TypesMustSubsumeOrConvertInsideUndo csenv ndeep (WithTrace newTrace) cxsln m)
(ArgsMustSubsumeOrConvertInsideUndo csenv ndeep newTrace cxsln cx.IsSome)
(ArgsMustSubsumeOrConvertInsideUndo csenv ndeep newTrace cxsln cx.IsSome calledMeth)
reqdRetTyOpt
calledMeth) with
| OkResult _ -> None
| ErrorResult(_, exn) -> Some {methodSlot = calledMeth; amap = amap; error = exn })
| ErrorResult(_warnings, exn) ->
Some {methodSlot = calledMeth; amap = amap; error = exn })

None, ErrorD (failOverloading (NoOverloadsFound (methodName, errors, cx))), NoTrace

Expand Down Expand Up @@ -2635,7 +2642,7 @@ and ResolveOverloading
// Prefer methods with more precise param array arg type
let c =
if candidate.UsesParamArrayConversion && other.UsesParamArrayConversion then
compareTypes (candidate.GetParamArrayElementType()) (other.GetParamArrayElementType())
compareTypes candidate.ParamArrayElementType other.ParamArrayElementType
else
0
if c <> 0 then c else
Expand Down
3 changes: 1 addition & 2 deletions src/fsharp/ConstraintSolver.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ type OverloadInformation =
amap : ImportMap
error: exn
}
member OverloadMethodInfo : displayEnv: DisplayEnv -> m: range -> string

/// Cases for overload resolution failure that exists in the implementation of the compiler.
type OverloadResolutionFailure =
Expand All @@ -124,7 +123,7 @@ exception ErrorFromAddingConstraint of displayEnv: DisplayEnv * exn
exception UnresolvedConversionOperator of displayEnv: DisplayEnv * TType * TType * range
exception UnresolvedOverloading of displayEnv: DisplayEnv * callerArgs: CallerArgs<Expr> * failure: OverloadResolutionFailure * range
exception NonRigidTypar of displayEnv: DisplayEnv * string option * range * TType * TType * range

exception ArgDoesNotMatchError of error: ErrorsFromAddingSubsumptionConstraint * calledMeth: CalledMeth<Expr> * calledArg: CalledArg * callerArg: CallerArg<Expr>
/// A function that denotes captured tcVal, Used in constraint solver and elsewhere to get appropriate expressions for a ValRef.
type TcValF = (ValRef -> ValUseFlag -> TType list -> range -> Expr * TType)

Expand Down
2 changes: 2 additions & 0 deletions src/fsharp/FSComp.txt
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,8 @@ csNoOverloadsFoundReturnType,"Known return type: %s"
csMethodIsOverloaded,"A unique overload for method '%s' could not be determined based on type information prior to this program point. A type annotation may be needed."
csCandidates,"Candidates:\n%s"
csAvailableOverloads,"Available overloads:\n%s"
csOverloadCandidateNamedArgumentTypeMismatch,"Argument '%s' doesn't match"
csOverloadCandidateIndexedArgumentTypeMismatch,"Argument at index %d doesn't match"
512,parsDoCannotHaveVisibilityDeclarations,"Accessibility modifiers are not permitted on 'do' bindings, but '%s' was given."
513,parsEofInHashIf,"End of file in #if section begun at or after here"
514,parsEofInString,"End of file in string begun at or before here"
Expand Down
5 changes: 2 additions & 3 deletions src/fsharp/MethodCalls.fs
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ type CalledMeth<'T>

let fullCurriedCalledArgs = MakeCalledArgs infoReader.amap m minfo calledTyArgs
do assert (fullCurriedCalledArgs.Length = fullCurriedCalledArgs.Length)

let argSetInfos =
(callerArgs.CurriedCallerArgs, fullCurriedCalledArgs)
||> List.map2 (fun (unnamedCallerArgs, namedCallerArgs) fullCalledArgs ->
Expand Down Expand Up @@ -544,8 +544,7 @@ type CalledMeth<'T>

member x.ParamArrayCallerArgs = x.ArgSets |> List.tryPick (fun argSet -> if Option.isSome argSet.ParamArrayCalledArgOpt then Some argSet.ParamArrayCallerArgs else None )

member x.GetParamArrayElementType () =
// turned into a method to avoid assert to run while inspecting CalledMeth in debugger
member x.ParamArrayElementType =
assert (x.UsesParamArrayConversion)
x.ParamArrayCalledArgOpt.Value.CalledArgumentType |> destArrayTy x.amap.g

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ E_RigidTypeAnnotation03.fsx(17,9,17,25): typecheck error FS0041: No overloads ma
Known type of argument: sbyte

Available overloads:
- static member T.M : a:byte -> int
- static member T.M : a:decimal<Kg> -> int
- static member T.M : a:float -> int
- static member T.M : a:float32<Kg> -> int
- static member T.M : a:string -> int
- static member T.M : a:byte -> int // Argument 'a' doesn't match
- static member T.M : a:decimal<Kg> -> int // Argument 'a' doesn't match
- static member T.M : a:float -> int // Argument 'a' doesn't match
- static member T.M : a:float32<Kg> -> int // Argument 'a' doesn't match
- static member T.M : a:string -> int // Argument 'a' doesn't match

E_RigidTypeAnnotation03.fsx(18,13,18,19): typecheck error FS0001: This expression was expected to have type
'float32'
Expand All @@ -25,11 +25,11 @@ E_RigidTypeAnnotation03.fsx(18,9,18,30): typecheck error FS0041: No overloads ma
Known type of argument: float32

Available overloads:
- static member T.M : a:byte -> int
- static member T.M : a:decimal<Kg> -> int
- static member T.M : a:float -> int
- static member T.M : a:float32<Kg> -> int
- static member T.M : a:string -> int
- static member T.M : a:byte -> int // Argument 'a' doesn't match
- static member T.M : a:decimal<Kg> -> int // Argument 'a' doesn't match
- static member T.M : a:float -> int // Argument 'a' doesn't match
- static member T.M : a:float32<Kg> -> int // Argument 'a' doesn't match
- static member T.M : a:string -> int // Argument 'a' doesn't match

E_RigidTypeAnnotation03.fsx(19,13,19,20): typecheck error FS0001: This expression was expected to have type
'float32<'u>'
Expand All @@ -47,11 +47,11 @@ E_RigidTypeAnnotation03.fsx(20,9,20,39): typecheck error FS0041: No overloads ma
Known type of argument: decimal<N s ^ 2>

Available overloads:
- static member T.M : a:byte -> int
- static member T.M : a:decimal<Kg> -> int
- static member T.M : a:float -> int
- static member T.M : a:float32<Kg> -> int
- static member T.M : a:string -> int
- static member T.M : a:byte -> int // Argument 'a' doesn't match
- static member T.M : a:decimal<Kg> -> int // Argument 'a' doesn't match
- static member T.M : a:float -> int // Argument 'a' doesn't match
- static member T.M : a:float32<Kg> -> int // Argument 'a' doesn't match
- static member T.M : a:string -> int // Argument 'a' doesn't match

E_RigidTypeAnnotation03.fsx(21,14,21,18): typecheck error FS0001: This expression was expected to have type
'char'
Expand All @@ -63,8 +63,8 @@ E_RigidTypeAnnotation03.fsx(21,9,21,27): typecheck error FS0041: No overloads ma
Known type of argument: char

Available overloads:
- static member T.M : a:byte -> int
- static member T.M : a:decimal<Kg> -> int
- static member T.M : a:float -> int
- static member T.M : a:float32<Kg> -> int
- static member T.M : a:string -> int
- static member T.M : a:byte -> int // Argument 'a' doesn't match
- static member T.M : a:decimal<Kg> -> int // Argument 'a' doesn't match
- static member T.M : a:float -> int // Argument 'a' doesn't match
- static member T.M : a:float32<Kg> -> int // Argument 'a' doesn't match
- static member T.M : a:string -> int // Argument 'a' doesn't match
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,10 @@ E_TwoDifferentTypeVariablesGen00rec.fsx(62,18,62,42): typecheck error FS0043: Th

E_TwoDifferentTypeVariablesGen00rec.fsx(63,45,63,55): typecheck error FS0041: A unique overload for method 'M' could not be determined based on type information prior to this program point. A type annotation may be needed.



Known types of arguments: 'a * 'b



Candidates:
- static member C13.M : x:'a * y:'a -> One

- static member C13.M : x:'a * y:int -> Three

E_TwoDifferentTypeVariablesGen00rec.fsx(64,56,64,57): typecheck error FS0064: This construct causes code to be less generic than indicated by the type annotations. The type variable 'a has been constrained to be type ''b'.
Expand All @@ -36,15 +31,10 @@ E_TwoDifferentTypeVariablesGen00rec.fsx(65,18,65,42): typecheck error FS0043: Th

E_TwoDifferentTypeVariablesGen00rec.fsx(66,45,66,59): typecheck error FS0041: A unique overload for method 'M' could not be determined based on type information prior to this program point. A type annotation may be needed.



Known types of arguments: 'a * 'b



Candidates:
- static member C13.M : x:'a * y:'a -> One

- static member C13.M : x:'a * y:int -> Three

E_TwoDifferentTypeVariablesGen00rec.fsx(67,55,67,56): typecheck error FS0064: This construct causes code to be less generic than indicated by the type annotations. The type variable 'a has been constrained to be type ''b'.
Expand All @@ -55,15 +45,10 @@ E_TwoDifferentTypeVariablesGen00rec.fsx(67,18,67,42): typecheck error FS0043: Th

E_TwoDifferentTypeVariablesGen00rec.fsx(68,45,68,58): typecheck error FS0041: A unique overload for method 'M' could not be determined based on type information prior to this program point. A type annotation may be needed.



Known types of arguments: 'a * 'b



Candidates:
- static member C13.M : x:'a * y:'a -> One

- static member C13.M : x:'a * y:int -> Three

E_TwoDifferentTypeVariablesGen00rec.fsx(69,55,69,56): typecheck error FS0064: This construct causes code to be less generic than indicated by the type annotations. The type variable 'b has been constrained to be type 'int'.
Expand Down
Loading