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

Commit8ddd801

Browse files
committed
fix 299
1 parent1251430 commit8ddd801

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

‎src/fsharp/creflect.fs‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1001,7 +1001,7 @@ let ConvMethodBase cenv env (methName, v:Val) =
10011001
letparentTyconR= ConvTyconRef cenv v.TopValActualParent m
10021002

10031003
match v.MemberInfowith
1004-
| Some(vspr)whennot v.IsExtensionMember->
1004+
| Somevsprwhennot v.IsExtensionMember->
10051005

10061006
letvref= mkLocalValRef v
10071007
lettps,argInfos,retTy,_= GetTypeOfMemberInMemberForm cenv.g vref
@@ -1028,6 +1028,22 @@ let ConvMethodBase cenv env (methName, v:Val) =
10281028
methRetType= methRetTypeR;
10291029
methName= methName;
10301030
numGenericArgs=numGenericArgs}
1031+
1032+
|_when v.IsExtensionMember->
1033+
1034+
lettps,argInfos,retTy,_= GetTopValTypeInCompiledForm cenv.g v.ValReprInfo.Value v.Type v.Range
1035+
letargTys= argInfos|> List.concat|> List.map fst
1036+
letenvinner= BindFormalTypars env tps
1037+
letmethArgTypesR= ConvTypes cenv envinner m argTys
1038+
letmethRetTypeR= ConvReturnType cenv envinner m retTy
1039+
letnumGenericArgs= tps.Length
1040+
1041+
QP.MethodBaseData.Method
1042+
{ methParent= parentTyconR
1043+
methArgTypes= methArgTypesR
1044+
methRetType= methRetTypeR
1045+
methName= methName
1046+
numGenericArgs=numGenericArgs}
10311047
|_->
10321048

10331049
QP.MethodBaseData.ModuleDefn

‎tests/fsharp/core/quotes/test.fsx‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2684,6 +2684,29 @@ module NestedQuotations =
26842684

26852685
runAll()
26862686

2687+
moduleExtensionMembersWithSameName=
2688+
letcheck nm a b=ifnot(a= b)then printfn"%s failed, expected%A, got%A" nm b a
2689+
openFSharp.Quotations
2690+
typeSystem.Objectwith
2691+
[<ReflectedDefinition>]
2692+
memberthis.Add(x)= x
2693+
[<ReflectedDefinition>]
2694+
memberthis.Add(x,y)= x+ y
2695+
2696+
letrunAll()=
2697+
match<@ obj().Add(2)@>with
2698+
|(Patterns.Call(_, m,_))->
2699+
lettext= m|> Expr.TryGetReflectedDefinition|> sprintf"%A"
2700+
check"clewwenf094" text"Some Lambda (this, Lambda (x, x))"
2701+
|_->()
2702+
2703+
match<@ obj().Add(2,3)@>with
2704+
|(Patterns.Call(_, m,_))->
2705+
lettext= m|> Expr.TryGetReflectedDefinition|> sprintf"%A"
2706+
check"clewwenf095"(m.GetParameters().Length)3
2707+
|_->()
2708+
2709+
runAll()
26872710

26882711
letaa=
26892712
ifnot failures.IsEmptythen(printfn"Test Failed, failures =%A" failures; exit1)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp