Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita5f8433

Browse files
committed
Short type annotation.
1 parentac667ab commita5f8433

File tree

2 files changed

+70
-2
lines changed

2 files changed

+70
-2
lines changed

‎src/fsharp/NicePrint.fs‎

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,71 @@ module private PrintTastMemberOrVals =
11721172
letresL= stat---(nameL^^ wordL(tagPunctuation":")^^(tauL---(WordL.keywordWith^^ WordL.keywordSet)))
11731173
prettyTyparInst, resL
11741174

1175+
letprettyLayoutOfMemberShort denv typarInst(v:Val)=
1176+
letv= mkLocalValRef v
1177+
letmembInfo= Option.get v.MemberInfo
1178+
letstat= PrintTypes.layoutMemberFlags membInfo.MemberFlags
1179+
let_tps,argInfos,rty,_= GetTypeOfMemberInFSharpForm denv.g v
1180+
1181+
for argInfoin argInfosdo
1182+
for_,infoin argInfodo
1183+
info.Attribs<-[]
1184+
info.Name<- None
1185+
1186+
letmkNameL niceMethodTypars tagFunction name=
1187+
letnameL=
1188+
DemangleOperatorNameAsLayout(tagFunction>> mkNav v.DefinitionRange) name
1189+
letnameL=
1190+
if denv.showMemberContainersthen
1191+
layoutTyconRef denv v.MemberApparentEntity^^ SepL.dot^^ nameL
1192+
else
1193+
nameL
1194+
letnameL=if denv.showTyparBindingthen layoutTyparDecls denv nameLtrue niceMethodTyparselse nameL
1195+
letnameL= layoutAccessibility denv v.Accessibility nameL
1196+
nameL
1197+
1198+
match membInfo.MemberFlags.MemberKindwith
1199+
| MemberKind.Member->
1200+
letprettyTyparInst,_,tauL= prettyLayoutOfMemberType denv v typarInst argInfos rty
1201+
prettyTyparInst, tauL
1202+
| MemberKind.ClassConstructor
1203+
| MemberKind.Constructor->
1204+
letprettyTyparInst,_,tauL= prettyLayoutOfMemberType denv v typarInst argInfos rty
1205+
prettyTyparInst, tauL
1206+
| MemberKind.PropertyGetSet->
1207+
emptyTyparInst, stat
1208+
| MemberKind.PropertyGet->
1209+
if isNil argInfosthen
1210+
// use error recovery because intellisense on an incomplete file will show this
1211+
errorR(Error(FSComp.SR.tastInvalidFormForPropertyGetter(),v.Id.idRange))
1212+
letnameL= mkNameL[] tagProperty v.CoreDisplayName
1213+
letresL= nameL---(WordL.keywordWith^^ WordL.keywordGet)
1214+
emptyTyparInst, resL
1215+
else
1216+
letargInfos=
1217+
match argInfoswith
1218+
|[[(ty,_)]]when isUnitTy denv.g ty->[]
1219+
|_-> argInfos
1220+
1221+
letprettyTyparInst,_,tauL= prettyLayoutOfMemberType denv v typarInst argInfos rty
1222+
letresL=((if isNil argInfosthen tauLelse tauL---(WordL.keywordWith^^ WordL.keywordGet)))
1223+
prettyTyparInst, resL
1224+
| MemberKind.PropertySet->
1225+
if argInfos.Length<>1|| isNil argInfos.Headthen
1226+
// use error recovery because intellisense on an incomplete file will show this
1227+
errorR(Error(FSComp.SR.tastInvalidFormForPropertySetter(),v.Id.idRange))
1228+
letnameL= mkNameL[] tagProperty v.CoreDisplayName
1229+
letresL= nameL---(WordL.keywordWith^^ WordL.keywordSet)
1230+
emptyTyparInst, resL
1231+
else
1232+
letargInfos,valueInfo= List.frontAndBack argInfos.Head
1233+
letprettyTyparInst,_,tauL= prettyLayoutOfMemberType denv v typarInst(if isNil argInfosthen[]else[argInfos])(fst valueInfo)
1234+
letresL=(tauL---(WordL.keywordWith^^ WordL.keywordSet))
1235+
prettyTyparInst, resL
1236+
1237+
letprettyLayoutOfMemberNoInstShort denv v=
1238+
prettyLayoutOfMemberShort denv emptyTyparInst v|> snd
1239+
11751240
letprivatelayoutNonMemberVal denv(tps,v:Val,tau,cxs)=
11761241
letenv= SimplifyTypes.CollectInfotrue[tau] cxs
11771242
letcxs= env.postfixConstraints
@@ -1998,9 +2063,12 @@ let stringOfExnDef denv x = x |> TastDefinitionPrinting.layoutExnDef
19982063
letstringOfFSAttrib denv x= x|> PrintTypes.layoutAttrib denv|> squareAngleL|> showL
19992064
letstringOfILAttrib denv x= x|> PrintTypes.layoutILAttrib denv|> squareAngleL|> showL
20002065

2066+
2067+
20012068
letlayoutInferredSigOfModuleExpr showHeader denv infoReader ad m expr= InferredSigPrinting.layoutInferredSigOfModuleExpr showHeader denv infoReader ad m expr
20022069
letprettyLayoutOfValOrMember denv typarInst v= PrintTastMemberOrVals.prettyLayoutOfValOrMember denv typarInst v
2003-
letprettyLayoutOfValOrMemberNoInst denv v= PrintTastMemberOrVals.prettyLayoutOfValOrMemberNoInst denv v
2070+
letprettyLayoutOfValOrMemberNoInst denv v= PrintTastMemberOrVals.prettyLayoutOfValOrMemberNoInst denv v
2071+
letprettyLayoutOfMemberNoInstShort denv v= PrintTastMemberOrVals.prettyLayoutOfMemberNoInstShort denv v
20042072
letprettyLayoutOfInstAndSig denv x= PrintTypes.prettyLayoutOfInstAndSig denv x
20052073

20062074
/// Generate text for comparing two types.

‎src/fsharp/symbols/Symbols.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1961,7 +1961,7 @@ and FSharpMemberOrFunctionOrValue(cenv, d:FSharpMemberOrValData, item) =
19611961
memberx.FormatLayout(denv:FSharpDisplayContext)=
19621962
match x.IsMember, dwith
19631963
|true, V v->
1964-
NicePrint.prettyLayoutOfValOrMemberNoInst{(denv.Contents cenv.g)with showMemberContainers=true} v.Deref
1964+
NicePrint.prettyLayoutOfMemberNoInstShort{(denv.Contents cenv.g)with showMemberContainers=true} v.Deref
19651965
|_,_->
19661966
checkIsResolved()
19671967
letty=

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp