Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
bf89060
wip
0101 Jan 5, 2023
f11338c
This kinda works
0101 Jan 6, 2023
549e424
fantomas
0101 Jan 6, 2023
6577c9c
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Jan 13, 2023
158fa78
still in progress
0101 Jan 16, 2023
3ed2faa
this seems to work
0101 Jan 16, 2023
1558207
fantomas
0101 Jan 16, 2023
1502301
Merge branch 'main' into sig-rename-fix
0101 Jan 17, 2023
f5a9720
setting Val.argInfo otherRange
0101 Jan 17, 2023
9eca897
move publishing arguments into a function
0101 Jan 17, 2023
107faa5
Added arg_repr_info to Val
0101 Jan 18, 2023
fb811dd
fantomas
0101 Jan 19, 2023
2dea4c6
test
0101 Jan 20, 2023
64e77b7
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Jan 23, 2023
affa978
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Feb 6, 2023
80f19d2
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Feb 6, 2023
9a7af41
write signature location for parameters in itemkey
0101 Feb 8, 2023
e2647a5
fantomas
0101 Feb 8, 2023
8ab6400
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Feb 13, 2023
c068774
Added Symbol.IsPrivateToFileAndSignatureFile for optimized finding of…
0101 Feb 15, 2023
6aa5b02
fantomas
0101 Feb 15, 2023
735eb01
Disable method parameter test
0101 Feb 15, 2023
6561081
Update surface area test
0101 Feb 15, 2023
72b8a5d
Update surface area test
0101 Feb 15, 2023
3ad2fd4
Path for SymbolScope.SignatureAndImplementation in Find All References
0101 Feb 15, 2023
2e062cd
Declaration location -> symbol scope
0101 Feb 16, 2023
db17fc0
Merge branch 'main' into sig-rename-fix
0101 Feb 16, 2023
dfeeee2
Unified finding references and rename code
0101 Feb 16, 2023
41067b5
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Feb 17, 2023
d9daedb
tests WIP
0101 Feb 17, 2023
babba26
working tests
0101 Feb 21, 2023
a053ed3
Merge branch 'main' into sig-rename-fix
0101 Feb 21, 2023
5fae95a
Revert the tests, have to wait for Roslyn update to put them into FSh…
0101 Feb 22, 2023
0110a0a
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Feb 28, 2023
4ce721f
Added tests back
0101 Feb 28, 2023
59b368e
fantomas
0101 Feb 28, 2023
c554ef7
Merge branch 'main' into sig-rename-fix
T-Gro Mar 1, 2023
29de062
Merge branch 'main' into sig-rename-fix
vzarytovskii Mar 3, 2023
06f768b
split suspicious test
0101 Mar 6, 2023
7988334
build fix
0101 Mar 6, 2023
4ec7058
Merge remote-tracking branch 'upstream/main' into build-fix
0101 Mar 6, 2023
be9d0a8
Merge branch 'main' into sig-rename-fix
0101 Mar 6, 2023
9eb0412
test diagnostic
0101 Mar 6, 2023
71c911c
test diagnostic
0101 Mar 6, 2023
7a27afd
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Mar 15, 2023
04af54c
post-merge updates
0101 Mar 15, 2023
7e6ae96
ok fantomas...
0101 Mar 15, 2023
985fc75
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Mar 16, 2023
5d06f7c
Skip flaky tests
0101 Mar 16, 2023
34379d0
Merge branch 'main' into sig-rename-fix
0101 Mar 20, 2023
ecca2b0
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Mar 21, 2023
c23ecc0
experiment
0101 Mar 21, 2023
e33dba4
argInfo cache in TcEnv
0101 Mar 21, 2023
902c708
Merge branch 'main' into sig-rename-fix
0101 Mar 21, 2023
5af1abf
Merge branch 'main' into sig-rename-fix
0101 Mar 21, 2023
1006650
Merge branch 'main' into sig-rename-fix
0101 Mar 22, 2023
fa0c8d7
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Mar 23, 2023
3f09785
Merge branch 'main' into sig-rename-fix
T-Gro Mar 24, 2023
0467a89
Merge branch 'main' into sig-rename-fix
0101 Mar 27, 2023
98eb3b9
Merge branch 'main' into sig-rename-fix
0101 Mar 27, 2023
aecbcea
Merge branch 'main' into sig-rename-fix
0101 Mar 30, 2023
b713761
Merge branch 'main' into sig-rename-fix
0101 Apr 3, 2023
12def51
Merge branch 'main' into sig-rename-fix
0101 Apr 12, 2023
77d4531
Moved argInfoCache to cenv
0101 Apr 12, 2023
c193746
Removed unused open
0101 Apr 12, 2023
2db7a59
Merge remote-tracking branch 'upstream/main' into sig-rename-fix
0101 Apr 13, 2023
74d2aa2
make argInfoCache a ConcurrentDictionary
0101 Apr 13, 2023
72c986e
fix import
0101 Apr 13, 2023
99b5135
Merge remote-tracking branch 'origin/main' into sig-rename-fix
0101 Apr 14, 2023
a106570
Merge branch 'main' into sig-rename-fix
0101 Apr 14, 2023
5c93b3f
test refactoring, clear cache experiment
0101 Apr 14, 2023
bcbab6e
another experiment
0101 Apr 14, 2023
ad3162e
Merge branch 'main' into sig-rename-fix
0101 Apr 14, 2023
18a5da6
test adjustment
0101 Apr 14, 2023
b0b17e3
fix signature
0101 Apr 14, 2023
d4d6d4a
fix getSymbolUse
0101 Apr 14, 2023
24c0c89
remove debugging test
0101 Apr 14, 2023
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
4 changes: 4 additions & 0 deletions src/Compiler/Checking/CheckBasics.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

module internal FSharp.Compiler.CheckBasics

open System.Collections.Concurrent
open System.Collections.Generic

open FSharp.Compiler.Diagnostics
Expand Down Expand Up @@ -313,6 +314,8 @@ type TcFileState =

diagnosticOptions: FSharpDiagnosticOptions

argInfoCache: ConcurrentDictionary<(string * range), ArgReprInfo>

// forward call
TcPat: WarnOnUpperFlag -> TcFileState -> TcEnv -> PrelimValReprInfo option -> TcPatValFlags -> TcPatLinearEnv -> TType -> SynPat -> (TcPatPhase2Input -> Pattern) * TcPatLinearEnv

Expand Down Expand Up @@ -362,6 +365,7 @@ type TcFileState =
conditionalDefines = conditionalDefines
isInternalTestSpanStackReferring = isInternalTestSpanStackReferring
diagnosticOptions = diagnosticOptions
argInfoCache = ConcurrentDictionary()
TcPat = tcPat
TcSimplePats = tcSimplePats
TcSequenceExpressionEntry = tcSequenceExpressionEntry
Expand Down
6 changes: 6 additions & 0 deletions src/Compiler/Checking/CheckBasics.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

module internal FSharp.Compiler.CheckBasics

open System.Collections.Concurrent
open System.Collections.Generic
open FSharp.Compiler.Diagnostics
open Internal.Utilities.Library
Expand Down Expand Up @@ -263,6 +264,11 @@ type TcFileState =

diagnosticOptions: FSharpDiagnosticOptions

/// A cache for ArgReprInfos which get created multiple times for the same values
/// Since they need to be later mutated with updates from signature files this should make sure
/// we're always dealing with the same instance and the updates don't get lost
argInfoCache: ConcurrentDictionary<(string * range), ArgReprInfo>

// forward call
TcPat: WarnOnUpperFlag
-> TcFileState
Expand Down
6 changes: 3 additions & 3 deletions src/Compiler/Checking/CheckDeclarations.fs
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@ module TcRecdUnionAndEnumDeclarations =

| SynUnionCaseKind.FullType (ty, arity) ->
let tyR, _ = TcTypeAndRecover cenv NoNewTypars CheckCxs ItemOccurence.UseInType WarnOnIWSAM.Yes env tpenv ty
let curriedArgTys, recordTy = GetTopTauTypeInFSharpForm g (arity |> TranslateSynValInfo m (TcAttributes cenv env) |> TranslatePartialValReprInfo []).ArgInfos tyR m
let curriedArgTys, recordTy = GetTopTauTypeInFSharpForm g (arity |> TranslateSynValInfo cenv m (TcAttributes cenv env) |> TranslatePartialValReprInfo []).ArgInfos tyR m

if curriedArgTys.Length > 1 then
errorR(Error(FSComp.SR.tcIllegalFormForExplicitTypeDeclaration(), m))
Expand Down Expand Up @@ -2461,7 +2461,7 @@ module EstablishTypeDefinitionCores =

| SynUnionCaseKind.FullType (ty, arity) ->
let tyR, _ = TcTypeAndRecover cenv NoNewTypars NoCheckCxs ItemOccurence.UseInType WarnOnIWSAM.Yes env tpenv ty
let curriedArgTys, _ = GetTopTauTypeInFSharpForm g (arity |> TranslateSynValInfo m (TcAttributes cenv env) |> TranslatePartialValReprInfo []).ArgInfos tyR m
let curriedArgTys, _ = GetTopTauTypeInFSharpForm g (arity |> TranslateSynValInfo cenv m (TcAttributes cenv env) |> TranslatePartialValReprInfo []).ArgInfos tyR m

if curriedArgTys.Length > 1 then
errorR(Error(FSComp.SR.tcIllegalFormForExplicitTypeDeclaration(), m))
Expand Down Expand Up @@ -3462,7 +3462,7 @@ module EstablishTypeDefinitionCores =
noFieldsCheck userFields
primaryConstructorInDelegateCheck(implicitCtorSynPats)
let tyR, _ = TcTypeAndRecover cenv NoNewTypars CheckCxs ItemOccurence.UseInType WarnOnIWSAM.Yes envinner tpenv ty
let _, _, curriedArgInfos, returnTy, _ = GetValReprTypeInCompiledForm g (arity |> TranslateSynValInfo m (TcAttributes cenv envinner) |> TranslatePartialValReprInfo []) 0 tyR m
let _, _, curriedArgInfos, returnTy, _ = GetValReprTypeInCompiledForm g (arity |> TranslateSynValInfo cenv m (TcAttributes cenv envinner) |> TranslatePartialValReprInfo []) 0 tyR m
if curriedArgInfos.Length < 1 then error(Error(FSComp.SR.tcInvalidDelegateSpecification(), m))
if curriedArgInfos.Length > 1 then error(Error(FSComp.SR.tcDelegatesCannotBeCurried(), m))
let ttps = thisTyconRef.Typars m
Expand Down
76 changes: 60 additions & 16 deletions src/Compiler/Checking/CheckExpressions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -912,7 +912,8 @@ let AdjustValSynInfoInSignature g ty (SynValInfo(argsData, retData) as sigMD) =
| _ ->
sigMD

let TranslateTopArgSynInfo isArg m tcAttributes (SynArgInfo(Attributes attrs, isOpt, nm)) =

let TranslateTopArgSynInfo (cenv: cenv) isArg m tcAttributes (SynArgInfo(Attributes attrs, isOpt, nm)) =
// Synthesize an artificial "OptionalArgument" attribute for the parameter
let optAttrs =
if isOpt then
Expand All @@ -921,7 +922,7 @@ let TranslateTopArgSynInfo isArg m tcAttributes (SynArgInfo(Attributes attrs, is
Target=None
AppliesToGetterAndSetter=false
Range=m} : SynAttribute) ]
else
else
[]

if isArg && not (isNil attrs) && Option.isNone nm then
Expand All @@ -932,17 +933,36 @@ let TranslateTopArgSynInfo isArg m tcAttributes (SynArgInfo(Attributes attrs, is

// Call the attribute checking function
let attribs = tcAttributes (optAttrs@attrs)
({ Attribs = attribs; Name = nm } : ArgReprInfo)

let key = nm |> Option.map (fun id -> id.idText, id.idRange)

let argInfo =
key
|> Option.map cenv.argInfoCache.TryGetValue
|> Option.bind (fun (found, info) ->
if found then
Some info
else None)
|> Option.defaultValue ({ Attribs = attribs; Name = nm; OtherRange = None }: ArgReprInfo)

match key with
| Some k -> cenv.argInfoCache.[k] <- argInfo
| None -> ()

// Set freshly computed attribs in case they are different in the cache
argInfo.Attribs <- attribs

argInfo

/// Members have an arity inferred from their syntax. This "valSynData" is not quite the same as the arities
/// used in the middle and backends of the compiler ("valReprInfo").
/// "0" in a valSynData (see arity_of_pat) means a "unit" arg in a valReprInfo
/// Hence remove all "zeros" from arity and replace them with 1 here.
/// Note we currently use the compiled form for choosing unique names, to distinguish overloads because this must match up
/// between signature and implementation, and the signature just has "unit".
let TranslateSynValInfo m tcAttributes (SynValInfo(argsData, retData)) =
PrelimValReprInfo (argsData |> List.mapSquared (TranslateTopArgSynInfo true m (tcAttributes AttributeTargets.Parameter)),
retData |> TranslateTopArgSynInfo false m (tcAttributes AttributeTargets.ReturnValue))
let TranslateSynValInfo (cenv: cenv) m tcAttributes (SynValInfo(argsData, retData)) =
PrelimValReprInfo (argsData |> List.mapSquared (TranslateTopArgSynInfo cenv true m (tcAttributes AttributeTargets.Parameter)),
retData |> TranslateTopArgSynInfo cenv false m (tcAttributes AttributeTargets.ReturnValue))

let TranslatePartialValReprInfo tps (PrelimValReprInfo (argsData, retData)) =
ValReprInfo(ValReprInfo.InferTyparInfo tps, argsData, retData)
Expand Down Expand Up @@ -4057,7 +4077,7 @@ and TcPseudoMemberSpec cenv newOk env synTypes tpenv synMemberSig m =
else
warning(Error(FSComp.SR.tcTraitMayNotUseComplexThings(), m))

let item = Item.ArgName (Some id, memberConstraintTy, None, id.idRange)
let item = Item.OtherName (Some id, memberConstraintTy, None, None, id.idRange)
CallNameResolutionSink cenv.tcSink (id.idRange, env.NameEnv, item, emptyTyparInst, ItemOccurence.Use, env.AccessRights)

TTrait(tys, logicalCompiledName, memberFlags, argTys, returnTy, ref None), tpenv
Expand Down Expand Up @@ -4152,7 +4172,7 @@ and TcValSpec (cenv: cenv) env declKind newOk containerInfo memFlagsOpt thisTyOp

let reallyGenerateOneMember(id: Ident, valSynInfo, tyR, memberFlags) =
let PrelimValReprInfo(argsData, _) as prelimValReprInfo =
TranslateSynValInfo id.idRange (TcAttributes cenv env) valSynInfo
TranslateSynValInfo cenv id.idRange (TcAttributes cenv env) valSynInfo


// Fold in the optional argument information
Expand Down Expand Up @@ -4208,7 +4228,7 @@ and TcValSpec (cenv: cenv) env declKind newOk containerInfo memFlagsOpt thisTyOp
yield! generateOneMember({memberFlags with MemberKind=SynMemberKind.PropertySet}) ], tpenv
| _ ->
let valSynInfo = AdjustValSynInfoInSignature g declaredTy valSynInfo
let prelimValReprInfo = TranslateSynValInfo id.idRange (TcAttributes cenv env) valSynInfo
let prelimValReprInfo = TranslateSynValInfo cenv id.idRange (TcAttributes cenv env) valSynInfo
[ ValSpecResult(altActualParent, None, id, enclosingDeclaredTypars, declaredTypars, declaredTy, prelimValReprInfo, declKind) ], tpenv

//-------------------------------------------------------------------------
Expand Down Expand Up @@ -4663,7 +4683,7 @@ and TcStaticConstantParameter (cenv: cenv) (env: TcEnv) tpenv kind (StripParenTy
let record ttype =
match idOpt with
| Some id ->
let item = Item.ArgName (Some id, ttype, Some container, id.idRange)
let item = Item.OtherName (Some id, ttype, None, Some container, id.idRange)
CallNameResolutionSink cenv.tcSink (id.idRange, env.NameEnv, item, emptyTyparInst, ItemOccurence.Use, env.AccessRights)
| _ -> ()

Expand Down Expand Up @@ -6143,6 +6163,7 @@ and TcIteratedLambdas (cenv: cenv) isFirst (env: TcEnv) overallTy takenNames tpe
| infos :: rest ->
if infos.Length = vspecs.Length then
(vspecs, infos) ||> List.iter2 (fun v argInfo ->
v.SetArgReprInfoForDisplay (Some argInfo)
let inlineIfLambda = HasFSharpAttribute g g.attrib_InlineIfLambdaAttribute argInfo.Attribs
if inlineIfLambda then
v.SetInlineIfLambda())
Expand Down Expand Up @@ -6828,7 +6849,7 @@ and ComputeObjectExprOverrides (cenv: cenv) (env: TcEnv) tpenv impls =
// Convert the syntactic info to actual info
let overrides =
(overrides, bindNameAndSynInfoPairs) ||> List.map2 (fun (id: Ident, memberFlags, ty, bindingAttribs, bindingBody) (_, valSynData) ->
let partialValInfo = TranslateSynValInfo id.idRange (TcAttributes cenv env) valSynData
let partialValInfo = TranslateSynValInfo cenv id.idRange (TcAttributes cenv env) valSynData
let tps, _ = tryDestForallTy g ty
let valInfo = TranslatePartialValReprInfo tps partialValInfo
DispatchSlotChecking.GetObjectExprOverrideInfo g cenv.amap (implTy, id, memberFlags, ty, valInfo, bindingAttribs, bindingBody))
Expand Down Expand Up @@ -8252,7 +8273,7 @@ and TcItemThen (cenv: cenv) (overallTy: OverallTy) env tpenv (tinstEnclosing, it
// These items are not expected here - they are only used for reporting symbols from name resolution to language service
| Item.ActivePatternCase _
| Item.AnonRecdField _
| Item.ArgName _
| Item.OtherName _
| Item.CustomBuilder _
| Item.ModuleOrNamespaces _
| Item.NewDef _
Expand Down Expand Up @@ -9153,7 +9174,7 @@ and TcLookupItemThen cenv overallTy env tpenv mObjExpr objExpr objExprTy delayed
| Item.NewDef _
| Item.SetterArg _
| Item.CustomBuilder _
| Item.ArgName _
| Item.OtherName _
| Item.ActivePatternCase _ ->
error (Error (FSComp.SR.tcSyntaxFormUsedOnlyWithRecordLabelsPropertiesAndFields(), mItem))

Expand Down Expand Up @@ -9765,7 +9786,7 @@ and TcMethodApplication
| Some id -> id.idRange
| None -> id.idRange
let container = ArgumentContainer.Method finalCalledMethInfo
let item = Item.ArgName (idOpt, assignedArg.CalledArg.CalledArgumentType, Some container, m)
let item = Item.OtherName (idOpt, assignedArg.CalledArg.CalledArgumentType, None, Some container, m)
CallNameResolutionSink cenv.tcSink (id.idRange, env.NameEnv, item, emptyTyparInst, ItemOccurence.Use, ad))

/// STEP 6. Build the call expression, then adjust for byref-returns, out-parameters-as-tuples, post-hoc property assignments, methods-as-first-class-value,
Expand Down Expand Up @@ -10405,7 +10426,7 @@ and TcNormalizedBinding declKind (cenv: cenv) env tpenv overallTy safeThisValOpt

// Use the syntactic arity if we're defining a function
let (SynValData(_, valSynInfo, _)) = valSynData
let prelimValReprInfo = TranslateSynValInfo mBinding (TcAttributes cenv env) valSynInfo
let prelimValReprInfo = TranslateSynValInfo cenv mBinding (TcAttributes cenv env) valSynInfo

// Check the pattern of the l.h.s. of the binding
let tcPatPhase2, (TcPatLinearEnv (tpenv, nameToPrelimValSchemeMap, _)) =
Expand Down Expand Up @@ -11482,7 +11503,7 @@ and AnalyzeAndMakeAndPublishRecursiveValue
// NOTE: The type scheme here is normally not 'complete'!!!! The type is more or less just a type variable at this point.
// NOTE: top arity, type and typars get fixed-up after inference
let prelimTyscheme = GeneralizedType(enclosingDeclaredTypars@declaredTypars, ty)
let prelimValReprInfo = TranslateSynValInfo mBinding (TcAttributes cenv envinner) valSynInfo
let prelimValReprInfo = TranslateSynValInfo cenv mBinding (TcAttributes cenv envinner) valSynInfo
let valReprInfo, valReprInfoForDisplay = UseSyntacticValReprInfo declKind prelimTyscheme prelimValReprInfo
let hasDeclaredTypars = not (List.isEmpty declaredTypars)
let prelimValScheme = ValScheme(bindingId, prelimTyscheme, valReprInfo, valReprInfoForDisplay, memberInfoOpt, false, inlineFlag, NormalVal, vis, false, false, false, hasDeclaredTypars)
Expand Down Expand Up @@ -12055,6 +12076,27 @@ and TcLetrecBindings overridesOK (cenv: cenv) env tpenv (binds, bindsm, scopem)
// Bind specifications of values
//-------------------------------------------------------------------------

let private PublishArguments (cenv: cenv) (env: TcEnv) vspec (synValSig: SynValSig) numEnclosingTypars =
let arities = arityOfVal vspec
let _tps, _witnessInfos, curriedArgInfos, _retTy, _ = GetValReprTypeInCompiledForm cenv.g arities numEnclosingTypars vspec.Type vspec.DefinitionRange

let argInfos =
// Drop "this" argument for instance methods
match vspec.IsInstanceMember, curriedArgInfos with
| true, _::args
| _, args -> args

let synArgInfos = synValSig.SynInfo.CurriedArgInfos
let argData =
(synArgInfos, argInfos)
||> Seq.zip
|> Seq.collect (fun x -> x ||> Seq.zip)
|> Seq.choose (fun (synArgInfo, argInfo) -> synArgInfo.Ident |> Option.map (pair argInfo))

for (argTy, argReprInfo), ident in argData do
let item = Item.OtherName (Some ident, argTy, Some argReprInfo, None, ident.idRange)
CallNameResolutionSink cenv.tcSink (ident.idRange, env.NameEnv, item, emptyTyparInst, ItemOccurence.Binding, env.AccessRights)

let TcAndPublishValSpec (cenv: cenv, env, containerInfo: ContainerInfo, declKind : DeclKind, memFlagsOpt, tpenv, synValSig) =

let g = cenv.g
Expand Down Expand Up @@ -12122,6 +12164,8 @@ let TcAndPublishValSpec (cenv: cenv, env, containerInfo: ContainerInfo, declKind
let xmlDoc = xmlDoc.ToXmlDoc(checkXmlDocs, paramNames)
let vspec = MakeAndPublishVal cenv env (altActualParent, true, declKind, ValNotInRecScope, valscheme, attrs, xmlDoc, literalValue, false)

PublishArguments cenv env vspec synValSig allDeclaredTypars.Length

assert(vspec.InlineInfo = inlineFlag)

vspec, tpenv)
1 change: 1 addition & 0 deletions src/Compiler/Checking/CheckExpressions.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,7 @@ val TcValSpec:
/// giving the names and attributes relevant to arguments and return, but before type
/// parameters have been fully inferred via generalization.
val TranslateSynValInfo:
cenv: TcFileState ->
range ->
tcAttributes: (AttributeTargets -> SynAttribute list -> Attrib list) ->
synValInfo: SynValInfo ->
Expand Down
4 changes: 2 additions & 2 deletions src/Compiler/Checking/CheckIncrementalClasses.fs
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ let TcImplicitCtorLhs_Phase2A(cenv: cenv, env, tpenv, tcref: TyconRef, vis, attr

CheckForNonAbstractInterface g ModuleOrMemberBinding tcref memberFlags false id.idRange
let memberInfo = MakeMemberDataAndMangledNameForMemberVal(g, tcref, false, attribs, [], memberFlags, valSynData, id, false)
let prelimValReprInfo = TranslateSynValInfo m (TcAttributes cenv env) valSynData
let prelimValReprInfo = TranslateSynValInfo cenv m (TcAttributes cenv env) valSynData
let prelimTyschemeG = GeneralizedType(copyOfTyconTypars, ctorTy)
let isComplete = ComputeIsComplete copyOfTyconTypars [] ctorTy
let varReprInfo = InferGenericArityFromTyScheme prelimTyschemeG prelimValReprInfo
Expand All @@ -154,7 +154,7 @@ let TcImplicitCtorLhs_Phase2A(cenv: cenv, env, tpenv, tcref: TyconRef, vis, attr
let id = ident ("cctor", m)
CheckForNonAbstractInterface g ModuleOrMemberBinding tcref ClassCtorMemberFlags false id.idRange
let memberInfo = MakeMemberDataAndMangledNameForMemberVal(g, tcref, false, [], [], ClassCtorMemberFlags, valSynData, id, false)
let prelimValReprInfo = TranslateSynValInfo m (TcAttributes cenv env) valSynData
let prelimValReprInfo = TranslateSynValInfo cenv m (TcAttributes cenv env) valSynData
let prelimTyschemeG = GeneralizedType(copyOfTyconTypars, cctorTy)
let valReprInfo = InferGenericArityFromTyScheme prelimTyschemeG prelimValReprInfo
let cctorValScheme = ValScheme(id, prelimTyschemeG, Some valReprInfo, None, Some memberInfo, false, ValInline.Never, NormalVal, Some (SynAccess.Private Range.Zero), false, true, false, false)
Expand Down
Loading