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

Commit955a0d2

Browse files
committed
Removed code duplication / applied review.
Signed-off-by: realvictorprm <mueller.vpr@gmail.com>
1 parent6c4867d commit955a0d2

File tree

1 file changed

+39
-75
lines changed

1 file changed

+39
-75
lines changed

‎src/fsharp/NicePrint.fs‎

Lines changed: 39 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,13 +1108,20 @@ module private PrintTypes =
11081108

11091109
/// Printing TAST objects
11101110
moduleprivatePrintTastMemberOrVals=
1111-
openPrintTypes
1112-
letprivateprettyLayoutOfMember denv typarInst(v:Val)=
1111+
openPrintTypes
1112+
letprivateprettyLayoutOfMemberShortOption denv typarInst(v:Val)short=
11131113
letv= mkLocalValRef v
11141114
letmembInfo= Option.get v.MemberInfo
11151115
letstat= PrintTypes.layoutMemberFlags membInfo.MemberFlags
11161116
let_tps,argInfos,rty,_= GetTypeOfMemberInFSharpForm denv.g v
11171117

1118+
if shortthen
1119+
for argInfoin argInfosdo
1120+
for_,infoin argInfodo
1121+
info.Attribs<-[]
1122+
info.Name<- None
1123+
1124+
11181125
letmkNameL niceMethodTypars tagFunction name=
11191126
letnameL=
11201127
DemangleOperatorNameAsLayout(tagFunction>> mkNav v.DefinitionRange) name
@@ -1130,14 +1137,20 @@ module private PrintTastMemberOrVals =
11301137
match membInfo.MemberFlags.MemberKindwith
11311138
| MemberKind.Member->
11321139
letprettyTyparInst,niceMethodTypars,tauL= prettyLayoutOfMemberType denv v typarInst argInfos rty
1133-
letnameL= mkNameL niceMethodTypars tagMember v.LogicalName
1134-
letresL= stat---(nameL^^ WordL.colon^^ tauL)
1140+
letresL=
1141+
if shortthen tauL
1142+
else
1143+
letnameL= mkNameL niceMethodTypars tagMember v.LogicalName
1144+
stat---(nameL^^ WordL.colon^^ tauL)
11351145
prettyTyparInst, resL
11361146
| MemberKind.ClassConstructor
11371147
| MemberKind.Constructor->
11381148
letprettyTyparInst,_,tauL= prettyLayoutOfMemberType denv v typarInst argInfos rty
1139-
letnewL= layoutAccessibility denv v.Accessibility WordL.keywordNew
1140-
letresL= stat++ newL^^ wordL(tagPunctuation":")^^ tauL
1149+
letresL=
1150+
if shortthen tauL
1151+
else
1152+
letnewL= layoutAccessibility denv v.Accessibility WordL.keywordNew
1153+
stat++ newL^^ wordL(tagPunctuation":")^^ tauL
11411154
prettyTyparInst, resL
11421155
| MemberKind.PropertyGetSet->
11431156
emptyTyparInst, stat
@@ -1146,7 +1159,9 @@ module private PrintTastMemberOrVals =
11461159
// use error recovery because intellisense on an incomplete file will show this
11471160
errorR(Error(FSComp.SR.tastInvalidFormForPropertyGetter(),v.Id.idRange))
11481161
letnameL= mkNameL[] tagProperty v.CoreDisplayName
1149-
letresL= stat--- nameL---(WordL.keywordWith^^ WordL.keywordGet)
1162+
letresL=
1163+
if shortthen nameL---(WordL.keywordWith^^ WordL.keywordGet)
1164+
else stat--- nameL---(WordL.keywordWith^^ WordL.keywordGet)
11501165
emptyTyparInst, resL
11511166
else
11521167
letargInfos=
@@ -1155,8 +1170,13 @@ module private PrintTastMemberOrVals =
11551170
|_-> argInfos
11561171

11571172
letprettyTyparInst,niceMethodTypars,tauL= prettyLayoutOfMemberType denv v typarInst argInfos rty
1158-
letnameL= mkNameL niceMethodTypars tagProperty v.CoreDisplayName
1159-
letresL= stat---(nameL^^ WordL.colon^^(if isNil argInfosthen tauLelse tauL---(WordL.keywordWith^^ WordL.keywordGet)))
1173+
letresL=
1174+
if shortthen
1175+
if isNil argInfosthen tauL
1176+
else tauL---(WordL.keywordWith^^ WordL.keywordGet)
1177+
else
1178+
letnameL= mkNameL niceMethodTypars tagProperty v.CoreDisplayName
1179+
stat---(nameL^^ WordL.colon^^(if isNil argInfosthen tauLelse tauL---(WordL.keywordWith^^ WordL.keywordGet)))
11601180
prettyTyparInst, resL
11611181
| MemberKind.PropertySet->
11621182
if argInfos.Length<>1|| isNil argInfos.Headthen
@@ -1168,74 +1188,18 @@ module private PrintTastMemberOrVals =
11681188
else
11691189
letargInfos,valueInfo= List.frontAndBack argInfos.Head
11701190
letprettyTyparInst,niceMethodTypars,tauL= prettyLayoutOfMemberType denv v typarInst(if isNil argInfosthen[]else[argInfos])(fst valueInfo)
1171-
letnameL= mkNameL niceMethodTypars tagProperty v.CoreDisplayName
1172-
letresL= stat---(nameL^^ wordL(tagPunctuation":")^^(tauL---(WordL.keywordWith^^ WordL.keywordSet)))
1173-
prettyTyparInst, resL
1174-
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))
1191+
letresL=
1192+
if shortthen
1193+
(tauL---(WordL.keywordWith^^ WordL.keywordSet))
1194+
else
1195+
letnameL= mkNameL niceMethodTypars tagProperty v.CoreDisplayName
1196+
stat---(nameL^^ wordL(tagPunctuation":")^^(tauL---(WordL.keywordWith^^ WordL.keywordSet)))
12351197
prettyTyparInst, resL
1236-
1198+
1199+
letprivateprettyLayoutOfMemberShort denv typarInst(v:Val)= prettyLayoutOfMemberShortOption denv typarInst vfalse
1200+
12371201
letprettyLayoutOfMemberNoInstShort denv v=
1238-
prettyLayoutOfMemberShort denv emptyTyparInst v|> snd
1202+
prettyLayoutOfMemberShortOption denv emptyTyparInst vtrue|> snd
12391203

12401204
letprivatelayoutNonMemberVal denv(tps,v:Val,tau,cxs)=
12411205
letenv= SimplifyTypes.CollectInfotrue[tau] cxs

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp