@@ -1628,7 +1628,7 @@ let AdjustAndForgetUsesOfRecValue cenv (vrefTgt: ValRef) (valScheme: ValScheme)
1628
1628
errorR(Error(FSComp.SR.tcUnexpectedExprAtRecInfPoint(), m))
1629
1629
NormalValUse, []
1630
1630
1631
- let ityargs = generalizeTypars (List.drop (List.length tyargs0) generalizedTypars)
1631
+ let ityargs = generalizeTypars (List.skip (List.length tyargs0) generalizedTypars)
1632
1632
primMkApp (Expr.Val (vrefTgt, vrefFlags, m), fty) (tyargs0 @ ityargs) [] m
1633
1633
fixupPoint.Value <- fixedUpExpr)
1634
1634
@@ -5070,12 +5070,14 @@ and TcTypeApp cenv newOk checkCxs occ env tpenv m tcref pathTypeArgs (synArgTys:
5070
5070
// If we're not checking constraints, i.e. when we first assert the super/interfaces of a type definition, then just
5071
5071
// clear the constraint lists of the freshly generated type variables. A little ugly but fairly localized.
5072
5072
if checkCxs = NoCheckCxs then tps |> List.iter (fun tp -> tp.SetConstraints [])
5073
- if tinst.Length <> pathTypeArgs.Length + synArgTys.Length then
5074
- error (TyconBadArgs(env.DisplayEnv, tcref, pathTypeArgs.Length + synArgTys.Length, m))
5073
+ let synArgTysLength = synArgTys.Length
5074
+ let pathTypeArgsLength = pathTypeArgs.Length
5075
+ if tinst.Length <> pathTypeArgsLength + synArgTysLength then
5076
+ error (TyconBadArgs(env.DisplayEnv, tcref, pathTypeArgsLength + synArgTysLength, m))
5075
5077
5076
5078
let argTys, tpenv =
5077
5079
// Get the suffix of typars
5078
- let tpsForArgs = List.drop (tps.Length - synArgTys.Length ) tps
5080
+ let tpsForArgs = List.skip (tps.Length - synArgTysLength ) tps
5079
5081
let kindsForArgs = tpsForArgs |> List.map (fun tp -> tp.Kind)
5080
5082
TcTypesOrMeasures (Some kindsForArgs) cenv newOk checkCxs occ env tpenv synArgTys m
5081
5083
0 commit comments