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

Commit18ac68a

Browse files
committed
Merge branch 'fix-2453' ofhttps://github.com/dsyme/visualfsharp into dsyme-fix-2453
2 parents5a3afd2 +3685f84 commit18ac68a

File tree

4 files changed

+46
-4
lines changed

4 files changed

+46
-4
lines changed

‎src/fsharp/NameResolution.fs‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -427,9 +427,12 @@ let private GetCSharpStyleIndexedExtensionMembersForTyconRef (amap:Import.Import
427427
| firstTy::_->
428428
match firstTywith
429429
| ILType.Boxed tspec| ILType.Value tspec->
430-
lettcref=(tspec|> rescopeILTypeSpec scoref).TypeRef|> Import.ImportILTypeRef amap m
431-
if isCompiledTupleTyconRef g tcref|| tyconRefEq g tcref g.fastFunc_tcrthen None
432-
else Some tcref
430+
lettref=(tspec|> rescopeILTypeSpec scoref).TypeRef
431+
if Import.CanImportILTypeRef amap m trefthen
432+
lettcref= tref|> Import.ImportILTypeRef amap m
433+
if isCompiledTupleTyconRef g tcref|| tyconRefEq g tcref g.fastFunc_tcrthen None
434+
else Some tcref
435+
else None
433436
|_-> None
434437
|_-> None
435438
|_->

‎tests/fsharp/core/fsfromfsviacs/lib2.cs‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,18 @@ public class Lib2
4343

4444
}
4545

46+
47+
namespaceCustomExtensions
48+
{
49+
publicstaticclassExtensions
50+
{
51+
52+
/// Extend an F# type
53+
staticpublicintExtendFSharpType(thisLib.recd1recd){return5;}
54+
staticpublicintExtendCSharpType(thisLib2recd){return4;}
55+
}
56+
}
57+
4658
namespaceNewtonsoft.Json.Converters
4759
{
4860
internalclassSomeClass

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// #Conformance #Interop #Unions
2+
#if!NO_LIB_REFERENCE
23
openLib
4+
#endif
35
openFSharpOptionalTests
46

57
letfailures= ref[]
@@ -14,6 +16,11 @@ let test (s : string) b =
1416
if bthen stderr.WriteLine" OK"
1517
else report_failure(s)
1618

19+
#if NO_LIB_REFERENCE// Test for https://github.com/Microsoft/visualfsharp/issues/2453#issuecomment-280946177
20+
moduleTestExtensions=
21+
openCustomExtensions
22+
23+
#else
1724
letr1= Lib2.r1
1825
letr2= Lib2.r2
1926

@@ -28,6 +35,7 @@ let r3 = (Lib2.r3 : string recd3)
2835
let_= test"fejio2dw"(r3.recd3field1=4)
2936
let_= test"fejio2dw"(r3.recd3field2="c")
3037
let_= test"fejio2dw"(LanguagePrimitives.PhysicalEquality r3.recd3field3 r3)
38+
3139
let_= test"fejio2dw"(Lib2.li1=[3])
3240
let_= test"fejio2dw"(Lib2.lr1=[r1])
3341
let_= test"fejio2dw"(Lib2.oi1= Some3)
@@ -144,6 +152,20 @@ let TestAccessibility() =
144152
145153
*)
146154

155+
moduleTestExtensions=
156+
openCustomExtensions
157+
test"dfeweeon"(r1.ExtendFSharpType()=5)
158+
test"dfeweeon"(Lib2().ExtendCSharpType()=4)
159+
160+
#endif
161+
162+
163+
let_=
164+
if failuresthen(stdout.WriteLine"Test Failed"; exit1)
165+
else(stdout.WriteLine"Test Passed";
166+
System.IO.File.WriteAllText("test.ok","ok");
167+
exit0)
168+
147169
#if TESTS_AS_APP
148170
letRUN()=!failures
149171
#else
@@ -157,4 +179,3 @@ let aa =
157179
stdout.WriteLine"Test Failed"
158180
exit1
159181
#endif
160-

‎tests/fsharp/tests.fs‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,12 @@ module CoreTests =
373373

374374
peverify cfg"test.exe"
375375

376+
377+
// Same without the reference to lib.dll - testing an incomplete reference set, but only compiling a subset of the code
378+
fsc cfg"%s --noframework --define:NO_LIB_REFERENCE -r:lib3.dll -r:lib2.dll -o:test.exe -g" cfg.fsc_flags["test.fsx"]
379+
380+
peverify cfg"test.exe"
381+
376382
exec cfg("."++"test.exe")""
377383

378384
[<Test>]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp