Skip to content

Commit aa3cc29

Browse files
committed
Enable coreclr build of fsharp.compiler.dll, improve testframework for coreclr test cases
1 parent 4206a5d commit aa3cc29

File tree

82 files changed

+9342
-2473
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+9342
-2473
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ vsintegration/src/vs/FsPkgs/FSharp.Project/FS/FSharp.ProjectSystem.FSharp.fsi
9494
vsintegration/src/vs/FsPkgs/FSharp.Project/FS/ctofiles/
9595
tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Utils.dll
9696
tests/fsharpqa/Source/CodeGen/EmittedIL/ComputationExpressions/ComputationExprLibrary.dll
97+
tests/fsharp/optimize/stats/stats.txt
9798

9899
*.csproj.user
99100

appveyor-build.cmd

+6-3
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,15 @@ if not exist %_ngenexe% echo Error: Could not find ngen.exe. && goto :failure
3333
%_msbuildexe% src/fsharp-library-build.proj /p:Configuration=Release
3434
@if ERRORLEVEL 1 echo Error: library build failed && goto :failure
3535

36-
%_msbuildexe% src/fsharp-compiler-build.proj /p:Configuration=Release
37-
@if ERRORLEVEL 1 echo Error: compiler build failed && goto :failure
38-
3936
%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=coreclr /p:Configuration=Release /p:RestorePackages=true
4037
@if ERRORLEVEL 1 echo Error: library coreclr build failed && goto :failure
4138

39+
%_msbuildexe% src/fsharp-compiler-build.proj /p:TargetFramework=coreclr /p:Configuration=Release /p:RestorePackages=true
40+
@if ERRORLEVEL 1 echo Error: compiler coreclr build failed && goto :failure
41+
42+
%_msbuildexe% src/fsharp-compiler-build.proj /p:Configuration=Release
43+
@if ERRORLEVEL 1 echo Error: compiler build failed && goto :failure
44+
4245
%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
4346
@if ERRORLEVEL 1 echo Error: library portable47 build failed && goto :failure
4447

Binary file not shown.

lkg/FSharp-4.0.30319.1/bin/FSharp.SRGen.targets

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
66
created a backup copy. Incorrect changes to this file will make it
77
impossible to load or build your projects from the command-line or the IDE.
88
9-
Copyright (C) Microsoft Corporation. All rights reserved.
9+
Copyright (C) Microsoft Corporation. Apache 2.0 License.
1010
***********************************************************************************************
1111
-->
1212

@@ -59,7 +59,6 @@ Copyright (C) Microsoft Corporation. All rights reserved.
5959
<Exec Condition="'$(EnsureThereAreNoUnusedFsSrGenResources)'!='false' And '$(BuildingInsideVisualStudio)'!='true'"
6060
Command="$(FSharpSourcesRoot)\..\lkg\FSharp-$(LkgVersion)\bin\FindUnusedResources.exe %(FsSrGen.FullPath) $(FSharpSourcesRoot)" />
6161
</Target>
62-
6362
<ItemGroup>
6463
<AvailableItemName Include="FsSrGen">
6564
<Visible>false</Visible>
177 KB
Binary file not shown.

packages.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<packages>
33
<package id="dnx-coreclr-win-x86" version="1.0.0-beta6-12032" />
44
<package id="dnx-mono" version="1.0.0-beta5-12077" />
5-
<package id="Microsoft.DotNet.BuildTools" version="1.0.25-prerelease-00053" />
5+
<package id="Microsoft.DotNet.BuildTools" version="1.0.25-prerelease-00085" />
66
<package id="NUnit" version="2.6.4" targetFramework="net40" />
77
<package id="NUnit.Runners" version="2.6.4" />
88
<package id="FSharp.Data" version="2.2.5" />

src/FSharpSource.targets

+38-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
44
<Choose>
55
<When Condition="'$(Configuration)' == 'Debug' or '$(Configuration)' == 'Release' or '$(Configuration)' == 'VSDebug' or '$(Configuration)' == 'VSRelease' ">
6+
<PropertyGroup>
7+
<SkipSigning>true</SkipSigning><!-- Skip using the ,net toolset to generate signing . -->
8+
</PropertyGroup>
69
<Choose>
710
<When Condition="'$(ProjectLanguage)' == 'FSharp'">
811
<Choose>
@@ -33,12 +36,12 @@
3336
</PropertyGroup>
3437
</When>
3538
<Otherwise>
36-
<PropertyGroup Condition="'$(SIGN_WITH_MSFT_KEY)' == 'true'">
39+
<PropertyGroup Condition="'$(SIGN_WITH_MSFT_KEY)' == 'true' or '$(TargetFramework)' == 'coreclr'">
3740
<OtherFlags>$(OtherFlags) --version:4.4.0.9055 --delaysign+ --keyfile:"$(FSharpSourcesRoot)\fsharp\msft.pubkey"</OtherFlags>
3841
<DefineConstants>STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)</DefineConstants>
3942
<StrongNames>true</StrongNames>
4043
</PropertyGroup>
41-
<PropertyGroup Condition="'$(SIGN_WITH_MSFT_KEY)' != 'true'">
44+
<PropertyGroup Condition="'$(SIGN_WITH_MSFT_KEY)' != 'true' and '$(TargetFramework)' != 'coreclr'">
4245
<OtherFlags>$(OtherFlags) --version:4.4.0.9055 --keyfile:"$(FSharpSourcesRoot)\fsharp\test.snk"</OtherFlags>
4346
<DefineConstants>STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY;$(DefineConstants)</DefineConstants>
4447
<StrongNames>true</StrongNames>
@@ -125,6 +128,10 @@
125128
<DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
126129
<DefineConstants>$(DefineConstants);FX_NO_BIGINT</DefineConstants>
127130
<DefineConstants>$(DefineConstants);FX_NO_CONDITIONAL_WEAK_TABLE</DefineConstants>
131+
<DefineConstants>$(DefineConstants);ENABLE_MONO_SUPPORT</DefineConstants>
132+
<DefineConstants>$(DefineConstants);FX_MSBUILDRESOLVER_RUNTIMELIKE</DefineConstants>
133+
<DefineConstants>$(DefineConstants);TYPE_PROVIDER_SECURITY</DefineConstants>
134+
<DefineConstants>$(DefineConstants);FX_LCIDFROMCODEPAGE</DefineConstants>
128135
<OtherFlags>$(OtherFlags) --simpleresolution</OtherFlags>
129136
</PropertyGroup>
130137

@@ -138,6 +145,13 @@
138145
<DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
139146
<DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE;</DefineConstants>
140147
<DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants>
148+
<DefineConstants>$(DefineConstants);ENABLE_MONO_SUPPORT</DefineConstants>
149+
<DefineConstants>$(DefineConstants);FX_MSBUILDRESOLVER_RUNTIMELIKE</DefineConstants>
150+
<DefineConstants>$(DefineConstants);TYPE_PROVIDER_SECURITY</DefineConstants>
151+
<DefineConstants>$(DefineConstants);FX_LCIDFROMCODEPAGE</DefineConstants>
152+
<DefineConstants>$(DefineConstants);FX_RESX_RESOURCE_READER</DefineConstants>
153+
<DefineConstants>$(DefineConstants);FX_RESIDENT_COMPILER</DefineConstants>
154+
141155
<TargetFrameworkProfile></TargetFrameworkProfile>
142156
<!-- MSbuild works out the assembly references -->
143157
</PropertyGroup>
@@ -146,27 +160,44 @@
146160
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
147161
<DefineConstants>$(DefineConstants);FSHARP_CORE_4_5</DefineConstants>
148162
<DefineConstants>$(DefineConstants);FX_NO_BEGINEND_READWRITE</DefineConstants>
149-
<DefineConstants Condition="'$(Configuration)'!='Proto'">$(DefineConstants);FX_ATLEAST_45</DefineConstants>
163+
<DefineConstants>$(DefineConstants);FX_ATLEAST_45</DefineConstants>
150164
<DefineConstants>$(DefineConstants);FX_ATLEAST_40</DefineConstants>
151165
<DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants>
152166
<DefineConstants>$(DefineConstants);FX_ATLEAST_PORTABLE</DefineConstants>
153167
<DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
154168
<DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE;</DefineConstants>
155169
<DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants>
170+
<DefineConstants>$(DefineConstants);FX_RESHAPED_GLOBALIZATION</DefineConstants>
156171
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION</DefineConstants>
172+
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION_CORECLR</DefineConstants>
173+
<DefineConstants>$(DefineConstants);RESHAPED_MSBUILD</DefineConstants>
157174
<DefineConstants>$(DefineConstants);FX_NO_CONVERTER</DefineConstants>
158175
<DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH</DefineConstants>
159176
<DefineConstants>$(DefineConstants);FX_NO_EXIT</DefineConstants>
160177
<DefineConstants>$(DefineConstants);FX_NO_DEFAULT_DEPENDENCY_TYPE</DefineConstants>
161178
<DefineConstants>$(DefineConstants);FX_NO_BINARY_SERIALIZATION</DefineConstants>
162179
<DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
163-
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_METADATA_TOKENS</DefineConstants>
180+
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_MODULE_HANDLES</DefineConstants>
164181
<DefineConstants>$(DefineConstants);FX_NO_WEB_CLIENT</DefineConstants>
165182
<DefineConstants>$(DefineConstants);FX_EVENTWAITHANDLE_NO_IDISPOSABLE</DefineConstants>
166183
<DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants>
167184
<DefineConstants>$(DefineConstants);FX_NO_WAITONE_MILLISECONDS</DefineConstants>
168185
<DefineConstants>$(DefineConstants);FX_NO_PARAMETERIZED_THREAD_START</DefineConstants>
169186
<DefineConstants>$(DefineConstants);FX_NO_THREAD</DefineConstants>
187+
<DefineConstants>$(DefineConstants);FX_NO_SECURITY_PERMISSIONS</DefineConstants>
188+
<DefineConstants>$(DefineConstants);NO_HEAPTERMINATION</DefineConstants>
189+
<DefineConstants>$(DefineConstants);FX_REDUCED_EXCEPTIONS</DefineConstants>
190+
<DefineConstants>$(DefineConstants);FX_NO_PDB_READER</DefineConstants>
191+
<DefineConstants>$(DefineConstants);FX_NO_PDB_WRITER</DefineConstants>
192+
<DefineConstants>$(DefineConstants);FX_NO_SYMBOLSTORE</DefineConstants>
193+
<DefineConstants>$(DefineConstants);FX_NO_LINKEDRESOURCES</DefineConstants>
194+
<DefineConstants>$(DefineConstants);FX_NO_KEY_SIGNING</DefineConstants>
195+
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFEMIT</DefineConstants>
196+
<DefineConstants>$(DefineConstants);FX_NO_APP_DOMAINS</DefineConstants>
197+
<DefineConstants>$(DefineConstants);FX_NO_SYSTEM_CONFIGURATION</DefineConstants>
198+
<DefineConstants>$(DefineConstants);FX_RESHAPED_CONSOLE</DefineConstants>
199+
<DefineConstants>$(DefineConstants);FX_NO_RUNTIMEENVIRONMENT</DefineConstants>
200+
<DefineConstants>$(DefineConstants);NO_LOGGING_GUI</DefineConstants>
170201
<TargetFrameworkProfile>profile7</TargetFrameworkProfile> <!-- We are currently directly referencing corefx assemblies, so profile7 is not really true -->
171202
<ImplicitlyExpandTargetFramework>false</ImplicitlyExpandTargetFramework> <!-- To stop msbuild being helpfull and referencing the dlls for the profile -->
172203
</PropertyGroup>
@@ -232,6 +263,7 @@
232263
<DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE</DefineConstants>
233264
<DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE7</DefineConstants>
234265
<DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
266+
<DefineConstants>$(DefineConstants);FX_ATLEAST_45</DefineConstants>
235267
<DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants>
236268
<DefineConstants>$(DefineConstants);FX_ATLEAST_PORTABLE</DefineConstants>
237269
<DefineConstants>$(DefineConstants);FX_NO_BEGINEND_READWRITE</DefineConstants>
@@ -720,7 +752,7 @@
720752
<NuGetPackagesPath Condition="'$(NuGetPackagesPath)' == ''">$(FSharpSourcesRoot)\..\packages</NuGetPackagesPath>
721753

722754
<!-- fix this to be not so unfortunate looking -->
723-
<BuildToolsDir>$(MSBuildThisFileDirectory)..\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00053\lib\</BuildToolsDir>
755+
<BuildToolsDir>$(MSBuildThisFileDirectory)..\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00085\lib\</BuildToolsDir>
724756

725757
<!-- Implicitly needed by packageresolve.targets. Should file a bug for a better error message here -->
726758
<PackagesDir>$(NuGetPackagesPath)\</PackagesDir>
@@ -790,7 +822,7 @@
790822
'$(TargetFramework)' == 'portable259')"/>
791823
<Error
792824
Text="TargetFramework '$(TargetFramework)' is only supported when building FSharp.Core.dll and FSharp.Core.Unittests.dll. All other components must be built with TargetFramework=net40"
793-
Condition="'$(AssemblyName)' != 'FSharp.Core' and '$(AssemblyName)' != 'FSharp.Core.Unittests' and '$(TargetFramework)' != 'net40'"/>
825+
Condition="'$(AssemblyName)' != 'FSharp.Core' and '$(AssemblyName)' != 'FSharp.Core.Unittests' and '$(TargetFramework)' != 'net40' and '$(TargetFramework)' != 'coreclr'"/>
794826

795827
</Target>
796828

src/absil/il.fs

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ open System.Collections
1818

1919
let logging = false
2020

21+
#if ENABLE_MONO_SUPPORT
2122
// Officially supported way to detect if we are running on Mono.
2223
// See http://www.mono-project.com/FAQ:_Technical
2324
// "How can I detect if am running in Mono?" section
@@ -31,6 +32,7 @@ let runningOnMono =
3132
// called by OnTypeResolveEvent. The function throws a NullReferenceException. I'm working with that team to get
3233
// their issue fixed but we need to be robust here anyway.
3334
false
35+
#endif
3436

3537
let _ = if logging then dprintn "* warning: Il.logging is on"
3638

src/absil/il.fsi

+2
Original file line numberDiff line numberDiff line change
@@ -2272,7 +2272,9 @@ type ILPropertyRef =
22722272
member Name: string
22732273
interface System.IComparable
22742274

2275+
#if ENABLE_MONO_SUPPORT
22752276
val runningOnMono: bool
2277+
#endif
22762278

22772279
type ILReferences =
22782280
{ AssemblyReferences: ILAssemblyRef list;

src/absil/illib.fs

+13-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ open Internal.Utilities.Collections
1414
// Code that uses this should probably be adjusted to use unsigned integer types.
1515
let (>>>&) (x:int32) (n:int32) = int32 (uint32 x >>> n)
1616

17-
let notlazy v = Lazy.CreateFromValue v
17+
let notlazy v = Lazy<_>.CreateFromValue v
1818

1919
let isSome x = match x with None -> false | _ -> true
2020
let isNone x = match x with None -> true | _ -> false
@@ -166,6 +166,11 @@ module Option =
166166

167167
module List =
168168

169+
#if FX_RESHAPED_REFLECTION
170+
open PrimReflectionAdapters
171+
open Microsoft.FSharp.Core.ReflectionAdapters
172+
#endif
173+
169174
let sortWithOrder (c: IComparer<'T>) elements = List.sortWith (Order.toFunction c) elements
170175

171176
let splitAfter n l =
@@ -175,7 +180,7 @@ module List =
175180
let existsi f xs =
176181
let rec loop i xs = match xs with [] -> false | h::t -> f i h || loop (i+1) t
177182
loop 0 xs
178-
183+
179184
let lengthsEqAndForall2 p l1 l2 =
180185
List.length l1 = List.length l2 &&
181186
List.forall2 p l1 l2
@@ -920,6 +925,12 @@ type LayeredMultiMap<'Key,'Value when 'Key : equality and 'Key : comparison>(con
920925
module Shim =
921926

922927
open System.IO
928+
929+
#if FX_RESHAPED_REFLECTION
930+
open PrimReflectionAdapters
931+
open Microsoft.FSharp.Core.ReflectionAdapters
932+
#endif
933+
923934
[<AbstractClass>]
924935
type FileSystem() =
925936
abstract ReadAllBytesShim: fileName:string -> byte[]

src/absil/ilread.fs

+21-12
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ open System.Collections.Generic
1717
open Internal.Utilities
1818
open Microsoft.FSharp.Compiler.AbstractIL
1919
open Microsoft.FSharp.Compiler.AbstractIL.Internal
20-
#if NO_PDB_READER
20+
#if FX_NO_PDB_READER
2121
#else
2222
open Microsoft.FSharp.Compiler.AbstractIL.Internal.Support
2323
#endif
@@ -190,8 +190,11 @@ type MemoryMappedFile(hMap: MemoryMapping.HANDLE, start:nativeint) =
190190

191191
member m.ReadUTF8String i =
192192
let n = m.CountUtf8String i
193+
#if FX_RESHAPED_REFLECTION
194+
System.Text.Encoding.UTF8.GetString(NativePtr.ofNativeInt (m.Addr i), n)
195+
#else
193196
new System.String(NativePtr.ofNativeInt (m.Addr i), 0, n, System.Text.Encoding.UTF8)
194-
197+
#endif
195198

196199
type MMapChannel =
197200
{ mutable mmPos: int;
@@ -1025,7 +1028,7 @@ type ILReaderContext =
10251028
{ ilg: ILGlobals;
10261029
dataEndPoints: Lazy<int32 list>;
10271030
sorted: int64;
1028-
#if NO_PDB_READER
1031+
#if FX_NO_PDB_READER
10291032
pdb: obj option;
10301033
#else
10311034
pdb: (PdbReader * (string -> ILSourceDocument)) option;
@@ -1572,7 +1575,7 @@ let readBlobHeapAsDouble ctxt vidx = fst (sigptrGetDouble (readBlobHeap ctxt vid
15721575
// (e) the start of the native resources attached to the binary if any
15731576
// ----------------------------------------------------------------------*)
15741577

1575-
#if NO_PDB_READER
1578+
#if FX_NO_PDB_READER
15761579
let readNativeResources _ctxt = []
15771580
#else
15781581
let readNativeResources ctxt =
@@ -2994,7 +2997,7 @@ and seekReadTopCode ctxt numtypars (sz:int) start seqpoints =
29942997
let instrs = ibuf.ToArray()
29952998
instrs,rawToLabel, lab2pc, raw2nextLab
29962999

2997-
#if NO_PDB_READER
3000+
#if FX_NO_PDB_READER
29983001
and seekReadMethodRVA ctxt (_idx,nm,_internalcall,noinline,numtypars) rva =
29993002
#else
30003003
and seekReadMethodRVA ctxt (idx,nm,_internalcall,noinline,numtypars) rva =
@@ -3008,7 +3011,7 @@ and seekReadMethodRVA ctxt (idx,nm,_internalcall,noinline,numtypars) rva =
30083011
// -- an overall range for the method
30093012
// -- the sequence points for the method
30103013
let localPdbInfos, methRangePdbInfo, seqpoints =
3011-
#if NO_PDB_READER
3014+
#if FX_NO_PDB_READER
30123015
[], None, []
30133016
#else
30143017
match ctxt.pdb with
@@ -3067,7 +3070,7 @@ and seekReadMethodRVA ctxt (idx,nm,_internalcall,noinline,numtypars) rva =
30673070
with e ->
30683071
// "* Warning: PDB info for method "+nm+" could not be read and will be ignored: "+e.Message
30693072
[],None,[]
3070-
#endif // NO_PDB_READER
3073+
#endif
30713074

30723075
let baseRVA = ctxt.anyV2P("method rva",rva)
30733076
// ": reading body of method "+nm+" at rva "+string rva+", phys "+string baseRVA
@@ -3366,7 +3369,7 @@ and seekReadTopExportedTypes ctxt () =
33663369
done;
33673370
List.rev !res)
33683371

3369-
#if NO_PDB_READER
3372+
#if FX_NO_PDB_READER
33703373
#else
33713374
let getPdbReader opts infile =
33723375
match opts.pdbPath with
@@ -3939,10 +3942,16 @@ let rec genOpenBinaryReader infile is opts =
39393942
//-----------------------------------------------------------------------
39403943
// Set up the PDB reader so we can read debug info for methods.
39413944
// ----------------------------------------------------------------------
3942-
#if NO_PDB_READER
3945+
#if FX_NO_PDB_READER
39433946
let pdb = None
39443947
#else
3945-
let pdb = if runningOnMono then None else getPdbReader opts infile
3948+
let pdb =
3949+
#if ENABLE_MONO_SUPPORT
3950+
if runningOnMono then
3951+
None
3952+
else
3953+
#endif
3954+
getPdbReader opts infile
39463955
#endif
39473956

39483957
let rowAddr (tab:TableName) idx = tablePhysLocations.[tab.Index] + (idx - 1) * tableRowSizes.[tab.Index]
@@ -4067,7 +4076,7 @@ let mkDefault ilg =
40674076
pdbPath= None;
40684077
ilGlobals = ilg }
40694078

4070-
#if NO_PDB_READER
4079+
#if FX_NO_PDB_READER
40714080
let ClosePdbReader _x = ()
40724081
#else
40734082
let ClosePdbReader pdb =
@@ -4095,7 +4104,7 @@ let OpenILModuleReader infile opts =
40954104
ilAssemblyRefs = ilAssemblyRefs;
40964105
dispose = (fun () ->
40974106
cell := None;
4098-
is.Close();
4107+
is.Dispose();
40994108
ClosePdbReader pdb) }
41004109

41014110
// ++GLOBAL MUTABLE STATE

0 commit comments

Comments
 (0)