Skip to content

Commit 0464532

Browse files
committed
Merge pull request #516 from dsyme/add-test-1
add fix and test for 483
2 parents 6d2852f + 2b4154f commit 0464532

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

src/fsharp/CompileOps.fs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4235,9 +4235,16 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
42354235
| None ->
42364236

42374237
if tcConfigP.Get().useMonoResolution then
4238-
let resolved = [tcConfig.ResolveLibWithDirectories CcuLoadFailureAction.RaiseError assemblyReference |> Option.get]
4239-
resolutions <- resolutions.AddResolutionResults resolved
4240-
ResultD resolved
4238+
let action =
4239+
match mode with
4240+
| ResolveAssemblyReferenceMode.ReportErrors -> CcuLoadFailureAction.RaiseError
4241+
| ResolveAssemblyReferenceMode.Speculative -> CcuLoadFailureAction.ReturnNone
4242+
match tcConfig.ResolveLibWithDirectories action assemblyReference with
4243+
| Some resolved ->
4244+
resolutions <- resolutions.AddResolutionResults [resolved]
4245+
ResultD [resolved]
4246+
| None ->
4247+
ErrorD(AssemblyNotResolved(assemblyReference.Text,assemblyReference.Range))
42414248
else
42424249
// This is a previously unencounterd assembly. Resolve it and add it to the list.
42434250
// But don't cache resolution failures because the assembly may appear on the disk later.
@@ -5111,3 +5118,4 @@ let TypeCheckClosedInputSet (checkForErrors, tcConfig, tcImports, tcGlobals, pre
51115118

51125119

51135120

5121+

tests/fsharp/core/attributes/test.fsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1342,6 +1342,20 @@ module ParamArrayNullAttribute =
13421342
check "vwcewecioj9" (test3()) "Attr(<null>)"
13431343

13441344

1345+
// See https://github.com/fsharp/fsharp/issues/483
1346+
// We do not expect an exception
1347+
module TestFsiLoadOfNonExistentAssembly =
1348+
let test() =
1349+
try
1350+
let log4netType = System.Type.GetType("ThisTypeDoes.Not.Exist, thisAssemblyDoesNotExist")
1351+
let exists = log4netType <> null
1352+
if exists then report_failure (sprintf "type existed!")
1353+
do printfn "%A" exists
1354+
with e ->
1355+
report_failure (sprintf "exception unexpected: %s" e.Message)
1356+
1357+
do test()
1358+
13451359

13461360
(*-------------------------------------------------------------------------
13471361
!* Test passed?

tests/fsharp/core/fsiAndModifiers/test.fsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ module TestPack4 =
8686
printfn "got %A" got
8787
if got <> expected then fail (sprintf "TestPack4: got %A, expected %A" got expected)
8888

89-
9089
if errors.IsEmpty then
9190
System.IO.File.WriteAllText("test.ok", "")
9291
else

0 commit comments

Comments
 (0)