diff --git a/FSharp.Profiles.props b/FSharp.Profiles.props
index 534ba96c04f..6b473ce7eea 100644
--- a/FSharp.Profiles.props
+++ b/FSharp.Profiles.props
@@ -5,43 +5,22 @@
$(DefineConstants);CROSS_PLATFORM_COMPILER
$(DefineConstants);ENABLE_MONO_SUPPORT
- $(DefineConstants);BE_SECURITY_TRANSPARENT
$(DefineConstants);FX_LCIDFROMCODEPAGE
$(DefineConstants);NETSTANDARD
$(DefineConstants);FX_NO_APP_DOMAINS
- $(DefineConstants);FX_NO_ARRAY_LONG_LENGTH
- $(DefineConstants);FX_NO_BEGINEND_READWRITE
- $(DefineConstants);FX_NO_BINARY_SERIALIZATION
- $(DefineConstants);FX_NO_CONVERTER
- $(DefineConstants);FX_NO_DEFAULT_DEPENDENCY_TYPE
$(DefineConstants);FX_NO_CORHOST_SIGNER
- $(DefineConstants);FX_NO_EVENTWAITHANDLE_IDISPOSABLE
- $(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS
$(DefineConstants);FX_NO_LINKEDRESOURCES
- $(DefineConstants);FX_NO_PARAMETERIZED_THREAD_START
$(DefineConstants);FX_NO_PDB_READER
$(DefineConstants);FX_NO_PDB_WRITER
- $(DefineConstants);FX_NO_REFLECTION_MODULE_HANDLES
- $(DefineConstants);FX_NO_REFLECTION_ONLY
- $(DefineConstants);FX_NO_RUNTIMEENVIRONMENT
- $(DefineConstants);FX_NO_SECURITY_PERMISSIONS
- $(DefineConstants);FX_NO_SERVERCODEPAGES
$(DefineConstants);FX_NO_SYMBOLSTORE
$(DefineConstants);FX_NO_SYSTEM_CONFIGURATION
- $(DefineConstants);FX_NO_THREAD
- $(DefineConstants);FX_NO_THREADABORT
- $(DefineConstants);FX_NO_WAITONE_MILLISECONDS
- $(DefineConstants);FX_NO_WEB_CLIENT
$(DefineConstants);FX_NO_WIN_REGISTRY
$(DefineConstants);FX_NO_WINFORMS
$(DefineConstants);FX_NO_INDENTED_TEXT_WRITER
- $(DefineConstants);FX_REDUCED_EXCEPTIONS
$(DefineConstants);FX_RESHAPED_REFEMIT
- $(DefineConstants);FX_RESHAPED_GLOBALIZATION
- $(DefineConstants);FX_RESHAPED_REFLECTION
$(DefineConstants);FX_RESHAPED_MSBUILD
$(OtherFlags) --simpleresolution
diff --git a/Makefile b/Makefile
index 10de364b677..a002620f232 100644
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@ restore:
build: proto restore
$(DotNetExe) build-server shutdown
- $(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Core/FSharp.Core.fsproj
+ $(DotNetExe) build -c $(Configuration) -f netstandard2.0 src/fsharp/FSharp.Core/FSharp.Core.fsproj
$(DotNetExe) build -c $(Configuration) -f netstandard2.0 src/fsharp/FSharp.Build/FSharp.Build.fsproj
$(DotNetExe) build -c $(Configuration) -f netstandard2.0 src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.1 src/fsharp/fsc/fsc.fsproj
diff --git a/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj b/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
index 9f16ede65d4..747cbba31cc 100644
--- a/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
+++ b/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
@@ -12,13 +12,9 @@
true
- $(DefineConstants);FX_NO_RUNTIMEENVIRONMENT
$(DefineConstants);NO_PROJECTCRACKER
-
- ReshapedReflection.fs
-
FsUnit.fs
diff --git a/fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj b/fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
index 134a3ca745d..68c60384f67 100644
--- a/fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
+++ b/fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
@@ -34,7 +34,6 @@
$(DefineConstants);FX_NO_SYMBOLSTORE
$(DefineConstants);FX_NO_LINKEDRESOURCES
$(DefineConstants);FX_NO_APP_DOMAINS
- $(DefineConstants);FX_NO_RUNTIMEENVIRONMENT
$(DefineConstants);FX_NO_WIN_REGISTRY
$(DefineConstants);FX_NO_SYSTEM_CONFIGURATION
$(DefineConstants);FX_RESHAPED_REFEMIT
@@ -67,9 +66,6 @@
Logger.fs
-
- Reshaped/reshapedreflection.fs
-
ErrorText/sformat.fsi
@@ -157,6 +153,9 @@
Utilities/bytes.fs
+
+ Utilities\XmlAdapters.fs
+
Utilities/lib.fs
diff --git a/src/absil/illib.fs b/src/absil/illib.fs
index fea0fd92a97..68b7c8d40a8 100644
--- a/src/absil/illib.fs
+++ b/src/absil/illib.fs
@@ -12,10 +12,6 @@ open System.Reflection
open System.Threading
open System.Runtime.CompilerServices
-#if FX_RESHAPED_REFLECTION
-open Microsoft.FSharp.Core.ReflectionAdapters
-#endif
-
// Logical shift right treating int32 as unsigned integer.
// Code that uses this should probably be adjusted to use unsigned integer types.
let (>>>&) (x: int32) (n: int32) = int32 (uint32 x >>> n)
@@ -258,12 +254,6 @@ module Option =
module List =
- //let item n xs = List.nth xs n
-#if FX_RESHAPED_REFLECTION
- open PrimReflectionAdapters
- open Microsoft.FSharp.Core.ReflectionAdapters
-#endif
-
let sortWithOrder (c: IComparer<'T>) elements = List.sortWith (Order.toFunction c) elements
let splitAfter n l =
@@ -1272,11 +1262,6 @@ type LayeredMultiMap<'Key, 'Value when 'Key : equality and 'Key : comparison>(co
[]
module Shim =
-#if FX_RESHAPED_REFLECTION
- open PrimReflectionAdapters
- open Microsoft.FSharp.Core.ReflectionAdapters
-#endif
-
type IFileSystem =
/// A shim over File.ReadAllBytes
diff --git a/src/absil/ilreflect.fs b/src/absil/ilreflect.fs
index 404ebf81b0c..9550c27cb9a 100644
--- a/src/absil/ilreflect.fs
+++ b/src/absil/ilreflect.fs
@@ -24,10 +24,6 @@ open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.Range
open FSharp.Core.Printf
-#if FX_RESHAPED_REFLECTION
-open Microsoft.FSharp.Core.ReflectionAdapters
-#endif
-
let codeLabelOrder = ComparisonIdentity.Structural
// Convert the output of convCustomAttr
@@ -314,10 +310,8 @@ let convAssemblyRef (aref: ILAssemblyRef) =
asmName.Version <- System.Version (int32 version.Major, int32 version.Minor, int32 version.Build, int32 version.Revision)
Option.iter setVersion aref.Version
// asmName.ProcessorArchitecture <- System.Reflection.ProcessorArchitecture.MSIL
-#if !FX_RESHAPED_GLOBALIZATION
//Option.iter (fun name -> asmName.CultureInfo <- System.Globalization.CultureInfo.CreateSpecificCulture name) aref.Locale
asmName.CultureInfo <- System.Globalization.CultureInfo.InvariantCulture
-#endif
asmName
/// The global environment.
@@ -663,9 +657,6 @@ let TypeBuilderInstantiationT =
ty
let typeIsNotQueryable (ty: Type) =
-#if FX_RESHAPED_REFLECTION
- let ty = ty.GetTypeInfo()
-#endif
(ty :? TypeBuilder) || ((ty.GetType()).Equals(TypeBuilderInstantiationT))
//----------------------------------------------------------------------------
// convFieldSpec
@@ -794,11 +785,7 @@ let queryableTypeGetMethod cenv emEnv parentT (mref: ILMethodRef) =
parentT.GetMethod(mref.Name, cconv ||| BindingFlags.Public ||| BindingFlags.NonPublic,
null,
argTs,
-#if FX_RESHAPED_REFLECTION
- (null: obj[]))
-#else
(null: ParameterModifier[]))
-#endif
// This can fail if there is an ambiguity w.r.t. return type
with _ -> null
if (isNonNull methInfo && equalTypes resT methInfo.ReturnType) then
@@ -1434,11 +1421,7 @@ let buildGenParamsPass1 _emEnv defineGenericParameters (gps: ILGenericParameterD
let buildGenParamsPass1b cenv emEnv (genArgs: Type array) (gps: ILGenericParameterDefs) =
-#if FX_RESHAPED_REFLECTION
- let genpBs = genArgs |> Array.map (fun x -> (x.GetTypeInfo() :?> GenericTypeParameterBuilder))
-#else
let genpBs = genArgs |> Array.map (fun x -> (x :?> GenericTypeParameterBuilder))
-#endif
gps |> List.iteri (fun i (gp: ILGenericParameterDef) ->
let gpB = genpBs.[i]
// the Constraints are either the parent (base) type or interfaces.
diff --git a/src/absil/ilwrite.fs b/src/absil/ilwrite.fs
index 5d6bfd3ee06..38f9fcfe39f 100644
--- a/src/absil/ilwrite.fs
+++ b/src/absil/ilwrite.fs
@@ -3035,9 +3035,6 @@ module FileSystemUtilites =
open System
open System.Reflection
open System.Globalization
-#if FX_RESHAPED_REFLECTION
- open Microsoft.FSharp.Core.ReflectionAdapters
-#endif
let progress = try System.Environment.GetEnvironmentVariable("FSharp_DebugSetFilePermissions") <> null with _ -> false
let setExecutablePermission (filename: string) =
diff --git a/src/fsharp/CompileOps.fs b/src/fsharp/CompileOps.fs
index 34a5dd50878..80334741ec8 100644
--- a/src/fsharp/CompileOps.fs
+++ b/src/fsharp/CompileOps.fs
@@ -5247,11 +5247,8 @@ let CheckSimulateException(tcConfig: TcConfig) =
| Some("tc-oom") -> raise(System.OutOfMemoryException())
| Some("tc-an") -> raise(System.ArgumentNullException("simulated"))
| Some("tc-invop") -> raise(System.InvalidOperationException())
-#if FX_REDUCED_EXCEPTIONS
-#else
| Some("tc-av") -> raise(System.AccessViolationException())
| Some("tc-nfn") -> raise(System.NotFiniteNumberException())
-#endif
| Some("tc-aor") -> raise(System.ArgumentOutOfRangeException())
| Some("tc-dv0") -> raise(System.DivideByZeroException())
| Some("tc-oe") -> raise(System.OverflowException())
diff --git a/src/fsharp/CompileOptions.fs b/src/fsharp/CompileOptions.fs
index 0c385cc3670..716263369ae 100644
--- a/src/fsharp/CompileOptions.fs
+++ b/src/fsharp/CompileOptions.fs
@@ -1604,16 +1604,10 @@ let ReportTime (tcConfig:TcConfig) descr =
| Some("fsc-oom") -> raise(System.OutOfMemoryException())
| Some("fsc-an") -> raise(System.ArgumentNullException("simulated"))
| Some("fsc-invop") -> raise(System.InvalidOperationException())
-#if FX_REDUCED_EXCEPTIONS
-#else
| Some("fsc-av") -> raise(System.AccessViolationException())
-#endif
| Some("fsc-aor") -> raise(System.ArgumentOutOfRangeException())
| Some("fsc-dv0") -> raise(System.DivideByZeroException())
-#if FX_REDUCED_EXCEPTIONS
-#else
| Some("fsc-nfn") -> raise(System.NotFiniteNumberException())
-#endif
| Some("fsc-oe") -> raise(System.OverflowException())
| Some("fsc-atmm") -> raise(System.ArrayTypeMismatchException())
| Some("fsc-bif") -> raise(System.BadImageFormatException())
diff --git a/src/fsharp/ErrorLogger.fs b/src/fsharp/ErrorLogger.fs
index e84b5c69e4b..f33f6ae1172 100755
--- a/src/fsharp/ErrorLogger.fs
+++ b/src/fsharp/ErrorLogger.fs
@@ -351,10 +351,6 @@ module ErrorLoggerExtensions =
/// Reraise an exception if it is one we want to report to Watson.
let ReraiseIfWatsonable(exn:exn) =
-#if FX_REDUCED_EXCEPTIONS
- ignore exn
- ()
-#else
match exn with
// These few SystemExceptions which we don't report to Watson are because we handle these in some way in Build.fs
| :? System.Reflection.TargetInvocationException -> ()
@@ -366,7 +362,6 @@ module ErrorLoggerExtensions =
PreserveStackTrace exn
raise exn
| _ -> ()
-#endif
type ErrorLogger with
@@ -404,10 +399,7 @@ module ErrorLoggerExtensions =
// Throws StopProcessing and exceptions raised by the DiagnosticSink(exn) handler.
match exn with
(* Don't send ThreadAbortException down the error channel *)
-#if FX_REDUCED_EXCEPTIONS
-#else
| :? System.Threading.ThreadAbortException | WrappedError((:? System.Threading.ThreadAbortException), _) -> ()
-#endif
| ReportedError _ | WrappedError(ReportedError _, _) -> ()
| StopProcessing | WrappedError(StopProcessing, _) ->
PreserveStackTrace exn
diff --git a/src/fsharp/ExtensionTyping.fs b/src/fsharp/ExtensionTyping.fs
index 0513bcf2eea..0c880dd9da3 100755
--- a/src/fsharp/ExtensionTyping.fs
+++ b/src/fsharp/ExtensionTyping.fs
@@ -140,9 +140,7 @@ module internal ExtensionTyping =
let StripException (e: exn) =
match e with
-#if !FX_REDUCED_EXCEPTIONS
| :? System.Reflection.TargetInvocationException as e -> e.InnerException
-#endif
| :? TypeInitializationException as e -> e.InnerException
| _ -> e
diff --git a/src/fsharp/FSharp.Build/FSharp.Build.fsproj b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
index ef4d013dc1f..72febbd64d3 100644
--- a/src/fsharp/FSharp.Build/FSharp.Build.fsproj
+++ b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
@@ -18,7 +18,6 @@
-
diff --git a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
index 70c01bec4f0..75af428f4f1 100644
--- a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
+++ b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
@@ -21,7 +21,6 @@
-
diff --git a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
index ebef5fb040b..cf5da21fbfc 100644
--- a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
+++ b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
@@ -73,12 +73,6 @@
Logger.fs
-
- Reflection\reshapedreflection.fs
-
-
- Reflection\reshapedmsbuild.fs
-
ErrorText\sformat.fsi
@@ -157,6 +151,9 @@
Utilities\bytes.fs
+
+ Utilities\XmlAdapters.fs
+
Utilities\InternalCollections.fsi
diff --git a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.netcore.nuspec b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.netcore.nuspec
index 2133f3bcf14..e8af5ff0e4a 100644
--- a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.netcore.nuspec
+++ b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.netcore.nuspec
@@ -4,7 +4,7 @@
FSharp.Compiler.Private.netcore
.NET Core compatible version of the fsharp compiler service dll
- Supported Platforms: - .NET Core (netstandard1.6)
+ Supported Platforms: - .NET Core (netstandard2.0)
en-US
true
@@ -15,7 +15,7 @@
$tags$
-
+
diff --git a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
index d3756ebc392..4a07b917ab8 100644
--- a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
+++ b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
@@ -45,7 +45,7 @@
-
+
-
+
-
+
true
- net45;netstandard1.6
+ net45;netstandard2.0
FSharp.Core
FSharp.Core.nuspec
true
diff --git a/src/fsharp/FSharp.Core.nuget/FSharp.Core.nuspec b/src/fsharp/FSharp.Core.nuget/FSharp.Core.nuspec
index b11df35fca0..9a69f48ec7c 100644
--- a/src/fsharp/FSharp.Core.nuget/FSharp.Core.nuspec
+++ b/src/fsharp/FSharp.Core.nuget/FSharp.Core.nuspec
@@ -5,50 +5,23 @@
http://fsharp.org/img/logo.png
en-US
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
diff --git a/src/fsharp/FSharp.Core/FSharp.Core.fsproj b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
index 588f72eaedc..829a118bc81 100644
--- a/src/fsharp/FSharp.Core/FSharp.Core.fsproj
+++ b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
@@ -4,8 +4,8 @@
Library
- net45;netstandard1.6
- netstandard1.6
+ net45;netstandard2.0
+ netstandard2.0
$(NoWarn);45;55;62;75;1204
true
$(DefineConstants);FSHARP_CORE
@@ -113,9 +113,6 @@
Collections/set.fs
-
- Reflection/reshapedreflection.fs
-
Reflection/reflect.fsi
@@ -223,11 +220,6 @@
-
-
-
-
-
diff --git a/src/fsharp/FSharp.Core/Linq.fs b/src/fsharp/FSharp.Core/Linq.fs
index 4663e6f79a5..cd942cf672c 100644
--- a/src/fsharp/FSharp.Core/Linq.fs
+++ b/src/fsharp/FSharp.Core/Linq.fs
@@ -162,11 +162,6 @@ open Microsoft.FSharp.Quotations
open Microsoft.FSharp.Quotations.Patterns
open Microsoft.FSharp.Quotations.DerivedPatterns
-#if FX_RESHAPED_REFLECTION
-open PrimReflectionAdapters
-open ReflectionAdapters
-#endif
-
module LeafExpressionConverter =
// The following is recognized as a LINQ 'member initialization pattern' in a quotation.
@@ -219,11 +214,7 @@ module LeafExpressionConverter =
SubstHelperRaw(q, x, y) |> Expr.Cast
let showAll =
-#if FX_RESHAPED_REFLECTION
- true
-#else
BindingFlags.Public ||| BindingFlags.NonPublic
-#endif
let NullableConstructor =
typedefof>.GetConstructors().[0]
diff --git a/src/fsharp/FSharp.Core/Query.fs b/src/fsharp/FSharp.Core/Query.fs
index 742f04b32d2..31e78f11dee 100644
--- a/src/fsharp/FSharp.Core/Query.fs
+++ b/src/fsharp/FSharp.Core/Query.fs
@@ -302,11 +302,6 @@ open Microsoft.FSharp.Quotations.DerivedPatterns
open Microsoft.FSharp.Linq.QueryRunExtensions
-#if FX_RESHAPED_REFLECTION
-open PrimReflectionAdapters
-open ReflectionAdapters
-#endif
-
[]
module Query =
diff --git a/src/fsharp/FSharp.Core/QueryExtensions.fs b/src/fsharp/FSharp.Core/QueryExtensions.fs
index 4885899fe89..bfddf7e57ef 100644
--- a/src/fsharp/FSharp.Core/QueryExtensions.fs
+++ b/src/fsharp/FSharp.Core/QueryExtensions.fs
@@ -15,11 +15,6 @@ open System.Collections.Generic
open System.Linq
open System.Linq.Expressions
-#if FX_RESHAPED_REFLECTION
-open PrimReflectionAdapters
-open ReflectionAdapters
-#endif
-
// ----------------------------------------------------------------------------
/// A type used to reconstruct a grouping after applying a mutable->immutable mapping transformation
@@ -171,11 +166,7 @@ module internal Adapters =
let (|RecordFieldGetSimplification|_|) (expr:Expr) =
match expr with
| Patterns.PropertyGet(Some (Patterns.NewRecord(typ,els)),propInfo,[]) ->
-#if FX_RESHAPED_REFLECTION
- let fields = Microsoft.FSharp.Reflection.FSharpType.GetRecordFields(typ, true)
-#else
let fields = Microsoft.FSharp.Reflection.FSharpType.GetRecordFields(typ,System.Reflection.BindingFlags.Public|||System.Reflection.BindingFlags.NonPublic)
-#endif
match fields |> Array.tryFindIndex (fun p -> p = propInfo) with
| None -> None
| Some i -> if i < els.Length then Some els.[i] else None
diff --git a/src/fsharp/FSharp.Core/array.fs b/src/fsharp/FSharp.Core/array.fs
index 8d7ce38869d..0ac47bd39a6 100644
--- a/src/fsharp/FSharp.Core/array.fs
+++ b/src/fsharp/FSharp.Core/array.fs
@@ -10,9 +10,6 @@ namespace Microsoft.FSharp.Collections
open Microsoft.FSharp.Core.Operators
open Microsoft.FSharp.Core.CompilerServices
open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators
-#if FX_RESHAPED_REFLECTION
- open System.Reflection
-#endif
/// Basic operations on arrays
[]
@@ -191,11 +188,7 @@ namespace Microsoft.FSharp.Collections
[]
let countBy (projection: 'T->'Key) (array: 'T[]) =
checkNonNull "array" array
-#if FX_RESHAPED_REFLECTION
- if (typeof<'Key>).GetTypeInfo().IsValueType
-#else
if typeof<'Key>.IsValueType
-#endif
then countByValueType projection array
else countByRefType projection array
@@ -445,11 +438,7 @@ namespace Microsoft.FSharp.Collections
[]
let groupBy (projection: 'T->'Key) (array: 'T[]) =
checkNonNull "array" array
-#if FX_RESHAPED_REFLECTION
- if (typeof<'Key>).GetTypeInfo().IsValueType
-#else
if typeof<'Key>.IsValueType
-#endif
then groupByValueType projection array
else groupByRefType projection array
diff --git a/src/fsharp/FSharp.Core/async.fs b/src/fsharp/FSharp.Core/async.fs
index 1f20f7c8110..86a1b262a4f 100644
--- a/src/fsharp/FSharp.Core/async.fs
+++ b/src/fsharp/FSharp.Core/async.fs
@@ -17,10 +17,6 @@ namespace Microsoft.FSharp.Control
open Microsoft.FSharp.Control
open Microsoft.FSharp.Collections
-#if FX_RESHAPED_REFLECTION
- open ReflectionAdapters
-#endif
-
type LinkedSubSource(cancellationToken: CancellationToken) =
let failureCTS = new CancellationTokenSource()
@@ -168,13 +164,11 @@ namespace Microsoft.FSharp.Control
let f = unbox<(unit -> AsyncReturn)> o
this.ExecuteWithTrampoline f |> unfake)
-#if !FX_NO_PARAMETERIZED_THREAD_START
// Preallocate this delegate and keep it in the trampoline holder.
let threadStartCallbackForStartThreadWithTrampoline =
ParameterizedThreadStart (fun o ->
let f = unbox<(unit -> AsyncReturn)> o
this.ExecuteWithTrampoline f |> unfake)
-#endif
/// Execute an async computation after installing a trampoline on its synchronous stack.
[]
@@ -196,22 +190,10 @@ namespace Microsoft.FSharp.Control
| null -> this.QueueWorkItemWithTrampoline f
| _ -> this.PostWithTrampoline syncCtxt f
-#if FX_NO_PARAMETERIZED_THREAD_START
- // This should be the only call to Thread.Start in this library. We must always install a trampoline.
- member this.StartThreadWithTrampoline (f: unit -> AsyncReturn) =
-#if FX_NO_THREAD
- this.QueueWorkItemWithTrampoline f
-#else
- (new Thread((fun _ -> this.Execute f |> unfake), IsBackground=true)).Start()
- fake()
-#endif
-
-#else
// This should be the only call to Thread.Start in this library. We must always install a trampoline.
member __.StartThreadWithTrampoline (f: unit -> AsyncReturn) =
(new Thread(threadStartCallbackForStartThreadWithTrampoline, IsBackground=true)).Start(f|>box)
fake()
-#endif
/// Save the exception continuation during propagation of an exception, or prior to raising an exception
member inline __.OnExceptionRaised econt =
@@ -731,12 +713,7 @@ namespace Microsoft.FSharp.Control
match resEvent with
| null -> ()
| ev ->
-#if FX_NO_EVENTWAITHANDLE_IDISPOSABLE
- ev.Dispose()
- System.GC.SuppressFinalize ev
-#else
ev.Close()
-#endif
resEvent <- null)
interface IDisposable with
@@ -824,15 +801,7 @@ namespace Microsoft.FSharp.Control
| None ->
// OK, let's really wait for the Set signal. This may block.
let timeout = defaultArg timeout Threading.Timeout.Infinite
-#if FX_NO_EXIT_CONTEXT_FLAGS
-#if FX_NO_WAITONE_MILLISECONDS
- let ok = resHandle.WaitOne(TimeSpan(int64 timeout*10000L))
-#else
- let ok = resHandle.WaitOne(millisecondsTimeout= timeout)
-#endif
-#else
let ok = resHandle.WaitOne(millisecondsTimeout= timeout, exitContext=true)
-#endif
if ok then
// Now the result really must be available
result
@@ -1385,15 +1354,7 @@ namespace Microsoft.FSharp.Control
let millisecondsTimeout = defaultArg millisecondsTimeout Threading.Timeout.Infinite
if millisecondsTimeout = 0 then
async.Delay(fun () ->
-#if FX_NO_EXIT_CONTEXT_FLAGS
-#if FX_NO_WAITONE_MILLISECONDS
- let ok = waitHandle.WaitOne(TimeSpan 0L)
-#else
- let ok = waitHandle.WaitOne 0
-#endif
-#else
let ok = waitHandle.WaitOne(0, exitContext=false)
-#endif
async.Return ok)
else
CreateDelimitedUserCodeAsync(fun ctxt ->
@@ -1683,12 +1644,7 @@ namespace Microsoft.FSharp.Control
member stream.AsyncRead(buffer: byte[], ?offset, ?count) =
let offset = defaultArg offset 0
let count = defaultArg count buffer.Length
-#if FX_NO_BEGINEND_READWRITE
- // use combo CreateDelimitedUserCodeAsync + taskContinueWith instead of AwaitTask so we can pass cancellation token to the ReadAsync task
- CreateDelimitedUserCodeAsync (fun ctxt -> taskContinueWith (stream.ReadAsync(buffer, offset, count, ctxt.aux.token)) ctxt false)
-#else
Async.FromBeginEnd (buffer, offset, count, stream.BeginRead, stream.EndRead)
-#endif
[] // give the extension member a 'nice', unmangled compiled name, unique within this module
member stream.AsyncRead count =
@@ -1705,12 +1661,7 @@ namespace Microsoft.FSharp.Control
member stream.AsyncWrite(buffer:byte[], ?offset:int, ?count:int) =
let offset = defaultArg offset 0
let count = defaultArg count buffer.Length
-#if FX_NO_BEGINEND_READWRITE
- // use combo CreateDelimitedUserCodeAsync + taskContinueWithUnit instead of AwaitTask so we can pass cancellation token to the WriteAsync task
- CreateDelimitedUserCodeAsync (fun ctxt -> taskContinueWithUnit (stream.WriteAsync(buffer, offset, count, ctxt.aux.token)) ctxt false)
-#else
Async.FromBeginEnd (buffer, offset, count, stream.BeginWrite, stream.EndWrite)
-#endif
type IObservable<'Args> with
@@ -1746,8 +1697,6 @@ namespace Microsoft.FSharp.Control
| _ ->
None)
-#if !FX_NO_WEB_CLIENT
-
type System.Net.WebClient with
member inline private this.Download(event: IEvent<'T, _>, handler: _ -> 'T, start, result) =
let downloadAsync =
@@ -1799,5 +1748,3 @@ namespace Microsoft.FSharp.Control
start = (fun userToken -> this.DownloadFileAsync(address, fileName, userToken)),
result = (fun _ -> ())
)
-#endif
-
diff --git a/src/fsharp/FSharp.Core/async.fsi b/src/fsharp/FSharp.Core/async.fsi
index b3312c6990d..8e054b39b68 100644
--- a/src/fsharp/FSharp.Core/async.fsi
+++ b/src/fsharp/FSharp.Core/async.fsi
@@ -739,8 +739,7 @@ namespace Microsoft.FSharp.Control
/// An asynchronous computation that waits for response to the WebRequest.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member AsyncGetResponse : unit -> Async
-
-#if !FX_NO_WEB_CLIENT
+
type System.Net.WebClient with
/// Returns an asynchronous computation that, when run, will wait for the download of the given URI.
@@ -761,7 +760,6 @@ namespace Microsoft.FSharp.Control
/// An asynchronous computation that will wait for the download of the URI to specified file.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member AsyncDownloadFile : address:System.Uri * fileName: string -> Async
-#endif
// Internals used by MailboxProcessor
module internal AsyncBuilderImpl =
diff --git a/src/fsharp/FSharp.Core/event.fs b/src/fsharp/FSharp.Core/event.fs
index 4489c325d5a..8643b669c3e 100644
--- a/src/fsharp/FSharp.Core/event.fs
+++ b/src/fsharp/FSharp.Core/event.fs
@@ -11,10 +11,6 @@ namespace Microsoft.FSharp.Control
open System.Reflection
open System.Diagnostics
-#if FX_RESHAPED_REFLECTION
- open ReflectionAdapters
-#endif
-
[]
type DelegateEvent<'Delegate when 'Delegate :> System.Delegate>() =
let mutable multicast : System.Delegate = null
diff --git a/src/fsharp/FSharp.Core/fslib-extra-pervasives.fs b/src/fsharp/FSharp.Core/fslib-extra-pervasives.fs
index dd8d087345e..0917f84a50a 100644
--- a/src/fsharp/FSharp.Core/fslib-extra-pervasives.fs
+++ b/src/fsharp/FSharp.Core/fslib-extra-pervasives.fs
@@ -166,21 +166,13 @@ module ExtraTopLevelOperators =
[]
let dict (keyValuePairs:seq<'Key*'T>) : IDictionary<'Key,'T> =
-#if FX_RESHAPED_REFLECTION
- if (typeof<'Key>).GetTypeInfo().IsValueType
-#else
if typeof<'Key>.IsValueType
-#endif
then dictValueType keyValuePairs :> _
else dictRefType keyValuePairs :> _
[]
let readOnlyDict (keyValuePairs:seq<'Key*'T>) : IReadOnlyDictionary<'Key,'T> =
-#if FX_RESHAPED_REFLECTION
- if (typeof<'Key>).GetTypeInfo().IsValueType
-#else
if typeof<'Key>.IsValueType
-#endif
then dictValueType keyValuePairs :> _
else dictRefType keyValuePairs :> _
diff --git a/src/fsharp/FSharp.Core/list.fs b/src/fsharp/FSharp.Core/list.fs
index 653c557a455..e7fd17ee52d 100644
--- a/src/fsharp/FSharp.Core/list.fs
+++ b/src/fsharp/FSharp.Core/list.fs
@@ -9,9 +9,6 @@ namespace Microsoft.FSharp.Collections
open Microsoft.FSharp.Collections
open Microsoft.FSharp.Core.CompilerServices
open System.Collections.Generic
-#if FX_RESHAPED_REFLECTION
- open System.Reflection
-#endif
[]
[]
@@ -71,11 +68,7 @@ namespace Microsoft.FSharp.Collections
[]
let countBy (projection:'T->'Key) (list:'T list) =
-#if FX_RESHAPED_REFLECTION
- if (typeof<'Key>).GetTypeInfo().IsValueType
-#else
if typeof<'Key>.IsValueType
-#endif
then countByValueType projection list
else countByRefType projection list
@@ -446,11 +439,7 @@ namespace Microsoft.FSharp.Collections
[]
let groupBy (projection:'T->'Key) (list:'T list) =
-#if FX_RESHAPED_REFLECTION
- if (typeof<'Key>).GetTypeInfo().IsValueType
-#else
if typeof<'Key>.IsValueType
-#endif
then groupByValueType projection list
else groupByRefType projection list
diff --git a/src/fsharp/FSharp.Core/map.fs b/src/fsharp/FSharp.Core/map.fs
index d701fb87cfa..d0fccda1fdb 100644
--- a/src/fsharp/FSharp.Core/map.fs
+++ b/src/fsharp/FSharp.Core/map.fs
@@ -446,21 +446,19 @@ module MapTree =
[]
type Map<[]'Key, []'Value when 'Key : comparison >(comparer: IComparer<'Key>, tree: MapTree<'Key, 'Value>) =
-#if !FX_NO_BINARY_SERIALIZATION
[]
- // This type is logically immutable. This field is only mutated during deserialization.
- let mutable comparer = comparer
+ // This type is logically immutable. This field is only mutated during deserialization.
+ let mutable comparer = comparer
[]
- // This type is logically immutable. This field is only mutated during deserialization.
- let mutable tree = tree
+ // This type is logically immutable. This field is only mutated during deserialization.
+ let mutable tree = tree
- // This type is logically immutable. This field is only mutated during serialization and deserialization.
+ // This type is logically immutable. This field is only mutated during serialization and deserialization.
//
- // WARNING: The compiled name of this field may never be changed because it is part of the logical
+ // WARNING: The compiled name of this field may never be changed because it is part of the logical
// WARNING: permanent serialization format for this type.
- let mutable serializedData = null
-#endif
+ let mutable serializedData = null
// We use .NET generics per-instantiation static fields to avoid allocating a new object for each empty
// set (it is just a lookup into a .NET table of type-instantiation-indexed static fields).
@@ -468,7 +466,6 @@ type Map<[]'Key, [
new Map<'Key, 'Value>(comparer, MapTree<_, _>.MapEmpty)
-#if !FX_NO_BINARY_SERIALIZATION
[]
member __.OnSerializing(context: System.Runtime.Serialization.StreamingContext) =
ignore context
@@ -483,9 +480,8 @@ type Map<[]'Key, [
- tree <- serializedData |> Array.map (fun (KeyValue(k, v)) -> (k, v)) |> MapTree.ofArray comparer
+ tree <- serializedData |> Array.map (fun (KeyValue(k, v)) -> (k, v)) |> MapTree.ofArray comparer
serializedData <- null
-#endif
static member Empty : Map<'Key, 'Value> =
empty
diff --git a/src/fsharp/FSharp.Core/prim-types.fs b/src/fsharp/FSharp.Core/prim-types.fs
index 2e91dec124f..1fe3d7e841a 100644
--- a/src/fsharp/FSharp.Core/prim-types.fs
+++ b/src/fsharp/FSharp.Core/prim-types.fs
@@ -374,29 +374,6 @@ namespace Microsoft.FSharp.Core
/// Represents a out-argument managed pointer in F# code. This type should only be used with F# 4.5+.
type outref<'T> = byref<'T, ByRefKinds.Out>
-#if FX_RESHAPED_REFLECTION
- module PrimReflectionAdapters =
-
- open System.Reflection
- open System.Linq
- // copied from BasicInlinedOperations
- let inline box (x:'T) = (# "box !0" type ('T) x : obj #)
- let inline unboxPrim<'T>(x:obj) = (# "unbox.any !0" type ('T) x : 'T #)
- type System.Type with
- member inline this.IsGenericType = this.GetTypeInfo().IsGenericType
- member inline this.IsValueType = this.GetTypeInfo().IsValueType
- member inline this.IsSealed = this.GetTypeInfo().IsSealed
- member inline this.IsAssignableFrom(otherType: Type) = this.GetTypeInfo().IsAssignableFrom(otherType.GetTypeInfo())
- member inline this.GetGenericArguments() = this.GetTypeInfo().GenericTypeArguments
- member inline this.GetProperty(name) = this.GetRuntimeProperty(name)
- member inline this.GetMethod(name, parameterTypes) = this.GetRuntimeMethod(name, parameterTypes)
- member inline this.GetCustomAttributes(attributeType: Type, inherits: bool) : obj[] =
- unboxPrim<_> (box (CustomAttributeExtensions.GetCustomAttributes(this.GetTypeInfo(), attributeType, inherits).ToArray()))
-
- open PrimReflectionAdapters
-
-#endif
-
module internal BasicInlinedOperations =
let inline unboxPrim<'T>(x:obj) = (# "unbox.any !0" type ('T) x : 'T #)
let inline box (x:'T) = (# "box !0" type ('T) x : obj #)
@@ -548,12 +525,8 @@ namespace Microsoft.FSharp.Core
ignore obj // pretend the variable is used
let e = new System.ArgumentException(ErrorStrings.AddressOpNotFirstClassString)
(# "throw" (e :> System.Exception) : nativeptr<'T> #)
-
-
+
open IntrinsicOperators
-#if FX_RESHAPED_REFLECTION
- open PrimReflectionAdapters
-#endif
[] // nested module OK
module IntrinsicFunctions =
@@ -881,78 +854,6 @@ namespace Microsoft.FSharp.Core
/// specialcase: Core implementation of structural comparison on arbitrary arrays.
and GenericComparisonArbArrayWithComparer (comp:GenericComparer) (x:System.Array) (y:System.Array) : int =
-#if FX_NO_ARRAY_LONG_LENGTH
- if x.Rank = 1 && y.Rank = 1 then
- let lenx = x.Length
- let leny = y.Length
- let c = intOrder lenx leny
- if c <> 0 then c else
- let basex = (x.GetLowerBound(0))
- let basey = (y.GetLowerBound(0))
- let c = intOrder basex basey
- if c <> 0 then c else
- let rec check i =
- if i >= lenx then 0 else
- let c = GenericCompare comp ((x.GetValue(i + basex)),(y.GetValue(i + basey)))
- if c <> 0 then c else check (i + 1)
- check 0
- elif x.Rank = 2 && y.Rank = 2 then
- let lenx0 = x.GetLength(0)
- let leny0 = y.GetLength(0)
- let c = intOrder lenx0 leny0
- if c <> 0 then c else
- let lenx1 = x.GetLength(1)
- let leny1 = y.GetLength(1)
- let c = intOrder lenx1 leny1
- if c <> 0 then c else
- let basex0 = (x.GetLowerBound(0))
- let basex1 = (x.GetLowerBound(1))
- let basey0 = (y.GetLowerBound(0))
- let basey1 = (y.GetLowerBound(1))
- let c = intOrder basex0 basey0
- if c <> 0 then c else
- let c = intOrder basex1 basey1
- if c <> 0 then c else
- let rec check0 i =
- let rec check1 j =
- if j >= lenx1 then 0 else
- let c = GenericCompare comp ((x.GetValue(i + basex0,j + basex1)), (y.GetValue(i + basey0,j + basey1)))
- if c <> 0 then c else check1 (j + 1)
- if i >= lenx0 then 0 else
- let c = check1 0
- if c <> 0 then c else
- check0 (i + 1)
- check0 0
- else
- let c = intOrder x.Rank y.Rank
- if c <> 0 then c else
- let ndims = x.Rank
- // check lengths
- let rec precheck k =
- if k >= ndims then 0 else
- let c = intOrder (x.GetLength(k)) (y.GetLength(k))
- if c <> 0 then c else
- let c = intOrder (x.GetLowerBound(k)) (y.GetLowerBound(k))
- if c <> 0 then c else
- precheck (k+1)
- let c = precheck 0
- if c <> 0 then c else
- let idxs : int[] = zeroCreate ndims
- let rec checkN k baseIdx i lim =
- if i >= lim then 0 else
- set idxs k (baseIdx + i)
- let c =
- if k = ndims - 1
- then GenericCompare comp ((x.GetValue(idxs)), (y.GetValue(idxs)))
- else check (k+1)
- if c <> 0 then c else
- checkN k baseIdx (i + 1) lim
- and check k =
- if k >= ndims then 0 else
- let baseIdx = x.GetLowerBound(k)
- checkN k baseIdx 0 (x.GetLength(k))
- check 0
-#else
if x.Rank = 1 && y.Rank = 1 then
let lenx = x.LongLength
let leny = y.LongLength
@@ -985,11 +886,11 @@ namespace Microsoft.FSharp.Core
let c = int64Order basex1 basey1
if c <> 0 then c else
let rec check0 i =
- let rec check1 j =
+ let rec check1 j =
if j >=. lenx1 then 0 else
let c = GenericCompare comp ((x.GetValue(i +. basex0,j +. basex1)), (y.GetValue(i +. basey0,j +. basey1)))
if c <> 0 then c else check1 (j +. 1L)
- if i >=. lenx0 then 0 else
+ if i >=. lenx0 then 0 else
let c = check1 0L
if c <> 0 then c else
check0 (i +. 1L)
@@ -998,8 +899,8 @@ namespace Microsoft.FSharp.Core
let c = intOrder x.Rank y.Rank
if c <> 0 then c else
let ndims = x.Rank
- // check lengths
- let rec precheck k =
+ // check lengths
+ let rec precheck k =
if k >= ndims then 0 else
let c = int64Order (x.GetLongLength(k)) (y.GetLongLength(k))
if c <> 0 then c else
@@ -1023,10 +924,9 @@ namespace Microsoft.FSharp.Core
let baseIdx = x.GetLowerBound(k)
checkN k (int64 baseIdx) 0L (x.GetLongLength(k))
check 0
-#endif
-
+
/// optimized case: Core implementation of structural comparison on object arrays.
- and GenericComparisonObjArrayWithComparer (comp:GenericComparer) (x:obj[]) (y:obj[]) : int =
+ and GenericComparisonObjArrayWithComparer (comp:GenericComparer) (x:obj[]) (y:obj[]) : int =
let lenx = x.Length
let leny = y.Length
let c = intOrder lenx leny
@@ -1035,8 +935,8 @@ namespace Microsoft.FSharp.Core
let mutable i = 0
let mutable res = 0
while i < lenx do
- let c = GenericCompare comp ((get x i), (get y i))
- if c <> 0 then (res <- c; i <- lenx)
+ let c = GenericCompare comp ((get x i), (get y i))
+ if c <> 0 then (res <- c; i <- lenx)
else i <- i + 1
res
@@ -1058,7 +958,7 @@ namespace Microsoft.FSharp.Core
type GenericComparer with
interface System.Collections.IComparer with
override c.Compare(x:obj,y:obj) = GenericCompare c (x,y)
-
+
/// The unique object for comparing values in PER mode (where local exceptions are thrown when NaNs are compared)
let fsComparerPER = GenericComparer(true)
@@ -1403,63 +1303,6 @@ namespace Microsoft.FSharp.Core
/// specialcase: Core implementation of structural equality on arbitrary arrays.
and GenericEqualityArbArray er (iec:System.Collections.IEqualityComparer) (x:System.Array) (y:System.Array) : bool =
-#if FX_NO_ARRAY_LONG_LENGTH
- if x.Rank = 1 && y.Rank = 1 then
- // check lengths
- let lenx = x.Length
- let leny = y.Length
- (int32Eq lenx leny) &&
- // check contents
- let basex = x.GetLowerBound(0)
- let basey = y.GetLowerBound(0)
- (int32Eq basex basey) &&
- let rec check i = (i >= lenx) || (GenericEqualityObj er iec ((x.GetValue(basex + i)),(y.GetValue(basey + i))) && check (i + 1))
- check 0
- elif x.Rank = 2 && y.Rank = 2 then
- // check lengths
- let lenx0 = x.GetLength(0)
- let leny0 = y.GetLength(0)
- (int32Eq lenx0 leny0) &&
- let lenx1 = x.GetLength(1)
- let leny1 = y.GetLength(1)
- (int32Eq lenx1 leny1) &&
- let basex0 = x.GetLowerBound(0)
- let basex1 = x.GetLowerBound(1)
- let basey0 = y.GetLowerBound(0)
- let basey1 = y.GetLowerBound(1)
- (int32Eq basex0 basey0) &&
- (int32Eq basex1 basey1) &&
- // check contents
- let rec check0 i =
- let rec check1 j = (j >= lenx1) || (GenericEqualityObj er iec ((x.GetValue(basex0 + i,basex1 + j)), (y.GetValue(basey0 + i,basey1 + j))) && check1 (j + 1))
- (i >= lenx0) || (check1 0 && check0 (i + 1))
- check0 0
- else
- (x.Rank = y.Rank) &&
- let ndims = x.Rank
- // check lengths
- let rec precheck k =
- (k >= ndims) ||
- (int32Eq (x.GetLength(k)) (y.GetLength(k)) &&
- int32Eq (x.GetLowerBound(k)) (y.GetLowerBound(k)) &&
- precheck (k+1))
- precheck 0 &&
- let idxs : int32[] = zeroCreate ndims
- // check contents
- let rec checkN k baseIdx i lim =
- (i >= lim) ||
- (set idxs k (baseIdx + i);
- (if k = ndims - 1
- then GenericEqualityObj er iec ((x.GetValue(idxs)),(y.GetValue(idxs)))
- else check (k+1)) &&
- checkN k baseIdx (i + 1) lim)
- and check k =
- (k >= ndims) ||
- (let baseIdx = x.GetLowerBound(k)
- checkN k baseIdx 0 (x.GetLength(k)))
-
- check 0
-#else
if x.Rank = 1 && y.Rank = 1 then
// check lengths
let lenx = x.LongLength
@@ -1468,9 +1311,9 @@ namespace Microsoft.FSharp.Core
// check contents
let basex = int64 (x.GetLowerBound(0))
let basey = int64 (y.GetLowerBound(0))
- (int64Eq basex basey) &&
+ (int64Eq basex basey) &&
let rec check i = (i >=. lenx) || (GenericEqualityObj er iec ((x.GetValue(basex +. i)),(y.GetValue(basey +. i))) && check (i +. 1L))
- check 0L
+ check 0L
elif x.Rank = 2 && y.Rank = 2 then
// check lengths
let lenx0 = x.GetLongLength(0)
@@ -1491,16 +1334,16 @@ namespace Microsoft.FSharp.Core
(i >=. lenx0) || (check1 0L && check0 (i +. 1L))
check0 0L
else
- (x.Rank = y.Rank) &&
+ (x.Rank = y.Rank) &&
let ndims = x.Rank
- // check lengths
- let rec precheck k =
- (k >= ndims) ||
- (int64Eq (x.GetLongLength(k)) (y.GetLongLength(k)) &&
- int32Eq (x.GetLowerBound(k)) (y.GetLowerBound(k)) &&
+ // check lengths
+ let rec precheck k =
+ (k >= ndims) ||
+ (int64Eq (x.GetLongLength(k)) (y.GetLongLength(k)) &&
+ int32Eq (x.GetLowerBound(k)) (y.GetLowerBound(k)) &&
precheck (k+1))
precheck 0 &&
- let idxs : int64[] = zeroCreate ndims
+ let idxs : int64[] = zeroCreate ndims
// check contents
let rec checkN k baseIdx i lim =
(i >=. lim) ||
@@ -1513,10 +1356,8 @@ namespace Microsoft.FSharp.Core
(k >= ndims) ||
(let baseIdx = x.GetLowerBound(k)
checkN k (int64 baseIdx) 0L (x.GetLongLength(k)))
-
check 0
-#endif
-
+
/// optimized case: Core implementation of structural equality on object arrays.
and GenericEqualityObjArray er iec (x:obj[]) (y:obj[]) : bool =
let lenx = x.Length
@@ -2960,7 +2801,6 @@ namespace Microsoft.FSharp.Core
[]
static member op_Implicit(func : ('T -> 'Res) ) = new System.Func<'T,'Res>(func)
-#if !FX_NO_CONVERTER
[]
static member op_Implicit(f : System.Converter<_,_>) : ('T -> 'Res) = (fun t -> f.Invoke(t))
@@ -2970,7 +2810,6 @@ namespace Microsoft.FSharp.Core
static member FromConverter (converter: System.Converter<_,_>) : ('T -> 'Res) = (fun t -> converter.Invoke(t))
static member ToConverter (func: ('T -> 'Res) ) = new System.Converter<'T,'Res>(func)
-#endif
static member InvokeFast (func:FSharpFunc<_,_>, arg1: 'T, arg2: 'Res) = OptimizedClosures.invokeFast2(func, arg1, arg2)
@@ -2986,9 +2825,7 @@ namespace Microsoft.FSharp.Core
static member inline ToFSharpFunc (action: Action<_>) = (fun t -> action.Invoke(t))
-#if !FX_NO_CONVERTER
static member inline ToFSharpFunc (converter : Converter<_,_>) = (fun t -> converter.Invoke(t))
-#endif
// Note: this is not made public in the signature, because of conflicts with the Converter overload.
// The method remains in case someone is calling it via reflection.
@@ -4268,26 +4105,12 @@ namespace Microsoft.FSharp.Core
module Attributes =
open System.Runtime.CompilerServices
-#if !FX_NO_DEFAULT_DEPENDENCY_TYPE
- []
-#endif
-
-#if !FX_NO_COMVISIBLE
[]
-#endif
[]
-
-#if BE_SECURITY_TRANSPARENT
[] // assembly is fully transparent
#if CROSS_PLATFORM_COMPILER
#else
[] // v4 transparency; soon to be the default, but not yet
-#endif
-#else
-#if !FX_NO_SECURITY_PERMISSIONS
- // REVIEW: Need to choose a specific permission for the action to be applied to
- []
-#endif
#endif
do ()
@@ -4654,13 +4477,10 @@ namespace Microsoft.FSharp.Core
when ^T : unativeint = (# "conv.ovf.i.un" value : nativeint #)
when ^T : byte = (# "conv.ovf.i.un" value : nativeint #)
- module OperatorIntrinsics =
-
+ module OperatorIntrinsics =
+
open System.Collections
-#if FX_RESHAPED_REFLECTION
- open PrimReflectionAdapters
-#endif
-
+
let notStarted() = raise (new System.InvalidOperationException(SR.GetString(SR.enumerationNotStarted)))
let alreadyFinished() = raise (new System.InvalidOperationException(SR.GetString(SR.enumerationAlreadyFinished)))
diff --git a/src/fsharp/FSharp.Core/prim-types.fsi b/src/fsharp/FSharp.Core/prim-types.fsi
index c977af45417..264cf7ff872 100644
--- a/src/fsharp/FSharp.Core/prim-types.fsi
+++ b/src/fsharp/FSharp.Core/prim-types.fsi
@@ -1342,20 +1342,6 @@ namespace Microsoft.FSharp.Core
[]
val inline FastCompareTuple5 : comparer:System.Collections.IComparer -> tuple1:('T1 * 'T2 * 'T3 * 'T4 * 'T5) -> tuple2:('T1 * 'T2 * 'T3 * 'T4 * 'T5) -> int
-#if FX_RESHAPED_REFLECTION
- module internal PrimReflectionAdapters =
-
- open System.Reflection
-
- type System.Type with
- member inline IsGenericType : bool
- member inline IsValueType : bool
- member inline GetMethod : string * parameterTypes : Type[] -> MethodInfo
- member inline GetProperty : string -> PropertyInfo
- member inline IsAssignableFrom : otherType : Type -> bool
- member inline GetCustomAttributes : attributeType : Type * inherits: bool -> obj[]
-#endif
-
//-------------------------------------------------------------------------
// F# Choice Types
@@ -1503,8 +1489,6 @@ namespace Microsoft.FSharp.Core
/// 'U
abstract member Invoke : func:'T -> 'U
-#if !FX_NO_CONVERTER
-
/// Convert an F# first class function value to a value of type System.Converter
/// The input function.
/// A System.Converter of the function type.
@@ -1524,7 +1508,6 @@ namespace Microsoft.FSharp.Core
/// The input System.Converter.
/// An F# function of the same type.
static member FromConverter : converter:System.Converter<'T,'U> -> ('T -> 'U)
-#endif
/// Invoke an F# first class function value with five curried arguments. In some cases this
/// will result in a more efficient application than applying the arguments successively.
@@ -1575,12 +1558,10 @@ namespace Microsoft.FSharp.Core
/// The F# function.
static member inline ToFSharpFunc : action:Action<'T> -> ('T -> unit)
-#if !FX_NO_CONVERTER
/// Convert the given Converter delegate object to an F# function value
/// The input Converter delegate.
/// The F# function.
static member inline ToFSharpFunc : converter:Converter<'T,'U> -> ('T -> 'U)
-#endif
/// Convert the given Action delegate object to an F# function value
/// The input Action delegate.
diff --git a/src/fsharp/FSharp.Core/printf.fs b/src/fsharp/FSharp.Core/printf.fs
index 141c9752da9..59a3687698f 100644
--- a/src/fsharp/FSharp.Core/printf.fs
+++ b/src/fsharp/FSharp.Core/printf.fs
@@ -47,11 +47,6 @@ module internal PrintfImpl =
open Microsoft.FSharp.Collections
open LanguagePrimitives.IntrinsicOperators
-#if FX_RESHAPED_REFLECTION
- open Microsoft.FSharp.Core.PrimReflectionAdapters
- open Microsoft.FSharp.Core.ReflectionAdapters
-#endif
-
open System.IO
[]
@@ -1070,12 +1065,8 @@ module internal PrintfImpl =
static member GenericToString<'T>(spec: FormatSpecifier) =
let bindingFlags =
-#if FX_RESHAPED_REFLECTION
- isPlusForPositives spec.Flags // true - show non-public
-#else
if isPlusForPositives spec.Flags then BindingFlags.Public ||| BindingFlags.NonPublic
else BindingFlags.Public
-#endif
let useZeroWidth = isPadWithZeros spec.Flags
let opts =
diff --git a/src/fsharp/FSharp.Core/quotations.fs b/src/fsharp/FSharp.Core/quotations.fs
index efd9763e1c5..974e32c7678 100644
--- a/src/fsharp/FSharp.Core/quotations.fs
+++ b/src/fsharp/FSharp.Core/quotations.fs
@@ -20,11 +20,6 @@ open Microsoft.FSharp.Text.StructuredPrintfImpl.TaggedTextOps
#nowarn "52" // The value has been copied to ensure the original is not mutated by this operation
-#if FX_RESHAPED_REFLECTION
-open PrimReflectionAdapters
-open ReflectionAdapters
-#endif
-
//--------------------------------------------------------------------------
// RAW quotations - basic data types
//--------------------------------------------------------------------------
@@ -56,11 +51,7 @@ module Helpers =
let staticBindingFlags = BindingFlags.Static ||| BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.DeclaredOnly
let staticOrInstanceBindingFlags = BindingFlags.Instance ||| BindingFlags.Static ||| BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.DeclaredOnly
let instanceBindingFlags = BindingFlags.Instance ||| BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.DeclaredOnly
-#if FX_RESHAPED_REFLECTION
- let publicOrPrivateBindingFlags = true
-#else
let publicOrPrivateBindingFlags = BindingFlags.Public ||| BindingFlags.NonPublic
-#endif
let isDelegateType (typ:Type) =
if typ.IsSubclassOf(typeof) then
@@ -989,11 +980,7 @@ module Patterns =
let resT = instFormal tyargTs rty
let methInfo =
try
-#if FX_RESHAPED_REFLECTION
- match parentT.GetMethod(nm, argTs) with
-#else
match parentT.GetMethod(nm, staticOrInstanceBindingFlags, null, argTs, null) with
-#endif
| null -> None
| res -> Some res
with :? AmbiguousMatchException -> None
@@ -1021,11 +1008,7 @@ module Patterns =
let tyArgs = List.toArray tyArgs
let methInfo =
try
-#if FX_RESHAPED_REFLECTION
- match ty.GetMethod(nm, argTypes) with
-#else
match ty.GetMethod(nm, staticOrInstanceBindingFlags, null, argTypes, null) with
-#endif
| null -> None
| res -> Some res
with :? AmbiguousMatchException -> None
@@ -1138,21 +1121,13 @@ module Patterns =
| _ -> null
| ctor -> ctor
-
let bindProp (tc, propName, retType, argTypes, tyargs) =
// We search in the instantiated type, rather than searching the generic type.
let typ = mkNamedType (tc, tyargs)
let argtyps : Type list = argTypes |> inst tyargs
let retType : Type = retType |> inst tyargs |> removeVoid
-#if FX_RESHAPED_REFLECTION
- try
- typ.GetProperty(propName, staticOrInstanceBindingFlags)
- with :? AmbiguousMatchException -> null // more than one property found with the specified name and matching binding constraints - return null to initiate manual search
- |> bindPropBySearchIfCandidateIsNull typ propName retType (Array.ofList argtyps)
- |> checkNonNullResult ("propName", String.Format(SR.GetString(SR.QfailedToBindProperty), propName)) // fxcop may not see "propName" as an arg
-#else
typ.GetProperty(propName, staticOrInstanceBindingFlags, null, retType, Array.ofList argtyps, null) |> checkNonNullResult ("propName", String.Format(SR.GetString(SR.QfailedToBindProperty), propName)) // fxcop may not see "propName" as an arg
-#endif
+
let bindField (tc, fldName, tyargs) =
let typ = mkNamedType (tc, tyargs)
typ.GetField(fldName, staticOrInstanceBindingFlags) |> checkNonNullResult ("fldName", String.Format(SR.GetString(SR.QfailedToBindField), fldName)) // fxcop may not see "fldName" as an arg
@@ -1163,26 +1138,12 @@ module Patterns =
let bindGenericCtor (tc:Type, argTypes:Instantiable) =
let argtyps = instFormal (getGenericArguments tc) argTypes
-#if FX_RESHAPED_REFLECTION
- let argTypes = Array.ofList argtyps
- tc.GetConstructor argTypes
- |> bindCtorBySearchIfCandidateIsNull tc argTypes
- |> checkNonNullResult ("tc", SR.GetString(SR.QfailedToBindConstructor))
-#else
tc.GetConstructor(instanceBindingFlags, null, Array.ofList argtyps, null) |> checkNonNullResult ("tc", SR.GetString(SR.QfailedToBindConstructor))
-#endif
let bindCtor (tc, argTypes:Instantiable, tyargs) =
let typ = mkNamedType (tc, tyargs)
let argtyps = argTypes |> inst tyargs
-#if FX_RESHAPED_REFLECTION
- let argTypes = Array.ofList argtyps
- typ.GetConstructor argTypes
- |> bindCtorBySearchIfCandidateIsNull typ argTypes
- |> checkNonNullResult ("tc", SR.GetString(SR.QfailedToBindConstructor))
-#else
typ.GetConstructor(instanceBindingFlags, null, Array.ofList argtyps, null) |> checkNonNullResult ("tc", SR.GetString(SR.QfailedToBindConstructor))
-#endif
let chop n xs =
if n < 0 then invalidArg "n" (SR.GetString(SR.inputMustBeNonNegative))
@@ -1358,11 +1319,7 @@ module Patterns =
if a = "" then mscorlib
elif a = "." then st.localAssembly
else
-#if FX_RESHAPED_REFLECTION
- match System.Reflection.Assembly.Load(AssemblyName a) with
-#else
match System.Reflection.Assembly.Load a with
-#endif
| null -> raise <| System.InvalidOperationException(String.Format(SR.GetString(SR.QfailedToBindAssembly), a.ToString()))
| assembly -> assembly
@@ -1684,14 +1641,6 @@ module Patterns =
let decodedTopResources = new Dictionary(10, HashIdentity.Structural)
-#if FX_NO_REFLECTION_MODULE_HANDLES // not available on Silverlight
- []
- type ModuleHandle = ModuleHandle of string * string
- type System.Reflection.Module with
- member x.ModuleHandle = ModuleHandle(x.Assembly.FullName, x.Name)
-#else
- type ModuleHandle = System.ModuleHandle
-#endif
[]
type ReflectedDefinitionTableKey =
@@ -1735,11 +1684,7 @@ module Patterns =
not (decodedTopResources.ContainsKey((assem, resourceName))) then
let cmaAttribForResource =
-#if FX_RESHAPED_REFLECTION
- CustomAttributeExtensions.GetCustomAttributes(assem, typeof) |> Seq.toArray
-#else
assem.GetCustomAttributes(typeof, false)
-#endif
|> (function null -> [| |] | x -> x)
|> Array.tryPick (fun ca ->
match ca with
diff --git a/src/fsharp/FSharp.Core/reflect.fs b/src/fsharp/FSharp.Core/reflect.fs
index 2024be205bf..f9e0a9daa8e 100644
--- a/src/fsharp/FSharp.Core/reflect.fs
+++ b/src/fsharp/FSharp.Core/reflect.fs
@@ -27,11 +27,6 @@ module internal ReflectionUtils =
[]
module internal Impl =
-#if FX_RESHAPED_REFLECTION
- open PrimReflectionAdapters
- open ReflectionAdapters
-#endif
-
let getBindingFlags allowAccess = ReflectionUtils.toBindingFlags (defaultArg allowAccess false)
let inline checkNonNull argName (v: 'T) =
@@ -56,31 +51,18 @@ module internal Impl =
//-----------------------------------------------------------------
// GENERAL UTILITIES
-#if FX_RESHAPED_REFLECTION
- let instanceFieldFlags = BindingFlags.Instance
- let instancePropertyFlags = BindingFlags.Instance
- let staticPropertyFlags = BindingFlags.Static
- let staticFieldFlags = BindingFlags.Static
- let staticMethodFlags = BindingFlags.Static
-#else
let instanceFieldFlags = BindingFlags.GetField ||| BindingFlags.Instance
let instancePropertyFlags = BindingFlags.GetProperty ||| BindingFlags.Instance
let staticPropertyFlags = BindingFlags.GetProperty ||| BindingFlags.Static
let staticFieldFlags = BindingFlags.GetField ||| BindingFlags.Static
let staticMethodFlags = BindingFlags.Static
-#endif
-
let getInstancePropertyInfo (typ: Type, propName, bindingFlags) = typ.GetProperty(propName, instancePropertyFlags ||| bindingFlags)
let getInstancePropertyInfos (typ, names, bindingFlags) = names |> Array.map (fun nm -> getInstancePropertyInfo (typ, nm, bindingFlags))
-
let getInstancePropertyReader (typ: Type, propName, bindingFlags) =
match getInstancePropertyInfo(typ, propName, bindingFlags) with
| null -> None
-#if FX_RESHAPED_REFLECTION
- | prop -> Some(fun (obj: obj) -> prop.GetValue (obj, null))
-#else
| prop -> Some(fun (obj: obj) -> prop.GetValue (obj, instancePropertyFlags ||| bindingFlags, null, null, null))
-#endif
+
//-----------------------------------------------------------------
// ATTRIBUTE DECOMPILATION
@@ -95,7 +77,6 @@ module internal Impl =
| None -> failwith "no compilation mapping attribute"
| Some a -> a
-#if !FX_NO_REFLECTION_ONLY
let cmaName = typeof.FullName
let assemblyName = typeof.Assembly.GetName().Name
let _ = assert (assemblyName = "FSharp.Core")
@@ -121,33 +102,26 @@ module internal Impl =
match tryFindCompilationMappingAttributeFromData attrs with
| None -> failwith "no compilation mapping attribute"
| Some a -> a
-#endif
let tryFindCompilationMappingAttributeFromType (typ: Type) =
-#if !FX_NO_REFLECTION_ONLY
let assem = typ.Assembly
if (not (isNull assem)) && assem.ReflectionOnly then
tryFindCompilationMappingAttributeFromData ( typ.GetCustomAttributesData())
else
-#endif
tryFindCompilationMappingAttribute ( typ.GetCustomAttributes (typeof, false))
let tryFindCompilationMappingAttributeFromMemberInfo (info: MemberInfo) =
-#if !FX_NO_REFLECTION_ONLY
let assem = info.DeclaringType.Assembly
if (not (isNull assem)) && assem.ReflectionOnly then
tryFindCompilationMappingAttributeFromData (info.GetCustomAttributesData())
else
-#endif
tryFindCompilationMappingAttribute (info.GetCustomAttributes (typeof, false))
let findCompilationMappingAttributeFromMemberInfo (info: MemberInfo) =
-#if !FX_NO_REFLECTION_ONLY
let assem = info.DeclaringType.Assembly
if (not (isNull assem)) && assem.ReflectionOnly then
findCompilationMappingAttributeFromData (info.GetCustomAttributesData())
else
-#endif
findCompilationMappingAttribute (info.GetCustomAttributes (typeof, false))
let sequenceNumberOfMember (x: MemberInfo) = let (_, n, _) = findCompilationMappingAttributeFromMemberInfo x in n
@@ -285,11 +259,8 @@ module internal Impl =
let getUnionCaseRecordReader (typ: Type, tag: int, bindingFlags) =
let props = fieldsPropsOfUnionCase (typ, tag, bindingFlags)
-#if FX_RESHAPED_REFLECTION
- (fun (obj: obj) -> props |> Array.map (fun prop -> prop.GetValue (obj, null)))
-#else
(fun (obj: obj) -> props |> Array.map (fun prop -> prop.GetValue (obj, bindingFlags, null, null, null)))
-#endif
+
let getUnionTagReader (typ: Type, bindingFlags) : (obj -> int) =
if isOptionType typ then
(fun (obj: obj) -> match obj with null -> 0 | _ -> 1)
@@ -302,20 +273,12 @@ module internal Impl =
| Some reader -> (fun (obj: obj) -> reader obj :?> int)
| None ->
(fun (obj: obj) ->
-#if FX_RESHAPED_REFLECTION
- let m2b = typ.GetMethod("GetTag", [| typ |])
-#else
let m2b = typ.GetMethod("GetTag", BindingFlags.Static ||| bindingFlags, null, [| typ |], null)
-#endif
m2b.Invoke(null, [|obj|]) :?> int)
let getUnionTagMemberInfo (typ: Type, bindingFlags) =
match getInstancePropertyInfo (typ, "Tag", bindingFlags) with
-#if FX_RESHAPED_REFLECTION
- | null -> (typ.GetMethod("GetTag") :> MemberInfo)
-#else
| null -> (typ.GetMethod("GetTag", BindingFlags.Static ||| bindingFlags) :> MemberInfo)
-#endif
| info -> (info :> MemberInfo)
let isUnionCaseNullary (typ: Type, tag: int, bindingFlags) =
@@ -335,11 +298,8 @@ module internal Impl =
let getUnionCaseConstructor (typ: Type, tag: int, bindingFlags) =
let meth = getUnionCaseConstructorMethod (typ, tag, bindingFlags)
(fun args ->
-#if FX_RESHAPED_REFLECTION
- meth.Invoke(null, args))
-#else
meth.Invoke(null, BindingFlags.Static ||| BindingFlags.InvokeMethod ||| bindingFlags, null, args, null))
-#endif
+
let checkUnionType (unionType, bindingFlags) =
checkNonNull "unionType" unionType
if not (isUnionType (unionType, bindingFlags)) then
@@ -513,18 +473,10 @@ module internal Impl =
let ctor =
if typ.IsValueType then
let fields = typ.GetFields (instanceFieldFlags ||| BindingFlags.Public) |> orderTupleFields
-#if FX_RESHAPED_REFLECTION
- typ.GetConstructor(fields |> Array.map (fun fi -> fi.FieldType))
-#else
typ.GetConstructor(BindingFlags.Public ||| BindingFlags.Instance, null, fields |> Array.map (fun fi -> fi.FieldType), null)
-#endif
else
let props = typ.GetProperties() |> orderTupleProperties
-#if FX_RESHAPED_REFLECTION
- typ.GetConstructor(props |> Array.map (fun p -> p.PropertyType))
-#else
typ.GetConstructor(BindingFlags.Public ||| BindingFlags.Instance, null, props |> Array.map (fun p -> p.PropertyType), null)
-#endif
match ctor with
| null -> raise (ArgumentException (String.Format (SR.GetString (SR.invalidTupleTypeConstructorNotDefined), typ.FullName)))
| _ -> ()
@@ -533,11 +485,7 @@ module internal Impl =
let getTupleCtor(typ: Type) =
let ctor = getTupleConstructorMethod typ
(fun (args: obj[]) ->
-#if FX_RESHAPED_REFLECTION
- ctor.Invoke args)
-#else
ctor.Invoke(BindingFlags.InvokeMethod ||| BindingFlags.Instance ||| BindingFlags.Public, null, args, null))
-#endif
let rec getTupleReader (typ: Type) =
let etys = typ.GetGenericArguments()
@@ -639,11 +587,7 @@ module internal Impl =
let getRecordConstructorMethod(typ: Type, bindingFlags) =
let props = fieldPropsOfRecordType(typ, bindingFlags)
-#if FX_RESHAPED_REFLECTION
- let ctor = typ.GetConstructor(props |> Array.map (fun p -> p.PropertyType))
-#else
let ctor = typ.GetConstructor(BindingFlags.Instance ||| bindingFlags, null, props |> Array.map (fun p -> p.PropertyType), null)
-#endif
match ctor with
| null -> raise <| ArgumentException (String.Format (SR.GetString (SR.invalidRecordTypeConstructorNotDefined), typ.FullName))
| _ -> ()
@@ -652,11 +596,7 @@ module internal Impl =
let getRecordConstructor(typ: Type, bindingFlags) =
let ctor = getRecordConstructorMethod(typ, bindingFlags)
(fun (args: obj[]) ->
-#if FX_RESHAPED_REFLECTION
- ctor.Invoke args)
-#else
ctor.Invoke(BindingFlags.InvokeMethod ||| BindingFlags.Instance ||| bindingFlags, null, args, null))
-#endif
/// EXCEPTION DECOMPILATION
// Check the base type - if it is also an F# type then
@@ -703,10 +643,6 @@ module internal Impl =
if not (isTupleType tupleType) then
invalidArg argName (String.Format (SR.GetString (SR.notATupleType), tupleType.FullName))
-#if FX_RESHAPED_REFLECTION
-open ReflectionAdapters
-#endif
-
[]
type UnionCaseInfo(typ: System.Type, tag: int) =
diff --git a/src/fsharp/FSharp.Core/seq.fs b/src/fsharp/FSharp.Core/seq.fs
index ab48146b631..97326e7315a 100644
--- a/src/fsharp/FSharp.Core/seq.fs
+++ b/src/fsharp/FSharp.Core/seq.fs
@@ -1071,11 +1071,7 @@ namespace Microsoft.FSharp.Collections
[]
let groupBy (projection:'T->'Key) (source:seq<'T>) =
-#if FX_RESHAPED_REFLECTION
- if (typeof<'Key>).GetTypeInfo().IsValueType
-#else
if typeof<'Key>.IsValueType
-#endif
then mkDelayedSeq (fun () -> groupByValueType projection source)
else mkDelayedSeq (fun () -> groupByRefType projection source)
@@ -1164,11 +1160,7 @@ namespace Microsoft.FSharp.Collections
let countBy (projection:'T->'Key) (source:seq<'T>) =
checkNonNull "source" source
-#if FX_RESHAPED_REFLECTION
- if (typeof<'Key>).GetTypeInfo().IsValueType
-#else
if typeof<'Key>.IsValueType
-#endif
then mkDelayedSeq (fun () -> countByValueType projection source)
else mkDelayedSeq (fun () -> countByRefType projection source)
diff --git a/src/fsharp/FSharp.Core/set.fs b/src/fsharp/FSharp.Core/set.fs
index f0c88dcf581..5da5152f296 100644
--- a/src/fsharp/FSharp.Core/set.fs
+++ b/src/fsharp/FSharp.Core/set.fs
@@ -512,23 +512,20 @@ module internal SetTree =
[>)>]
[]
[]
-type Set<[]'T when 'T: comparison >(comparer:IComparer<'T>, tree: SetTree<'T>) =
+type Set<[]'T when 'T: comparison >(comparer:IComparer<'T>, tree: SetTree<'T>) =
-#if !FX_NO_BINARY_SERIALIZATION
[]
- // NOTE: This type is logically immutable. This field is only mutated during deserialization.
- let mutable comparer = comparer
+ // NOTE: This type is logically immutable. This field is only mutated during deserialization.
+ let mutable comparer = comparer
[]
- // NOTE: This type is logically immutable. This field is only mutated during deserialization.
- let mutable tree = tree
+ // NOTE: This type is logically immutable. This field is only mutated during deserialization.
+ let mutable tree = tree
- // NOTE: This type is logically immutable. This field is only mutated during serialization and deserialization.
- //
- // WARNING: The compiled name of this field may never be changed because it is part of the logical
+ // NOTE: This type is logically immutable. This field is only mutated during serialization and deserialization.
+ // WARNING: The compiled name of this field may never be changed because it is part of the logical
// WARNING: permanent serialization format for this type.
- let mutable serializedData = null
-#endif
+ let mutable serializedData = null
// We use .NET generics per-instantiation static fields to avoid allocating a new object for each empty
// set (it is just a lookup into a .NET table of type-instantiation-indexed static fields).
@@ -537,7 +534,6 @@ type Set<[]'T when 'T: comparison >(comparer:IComparer<'T
let comparer = LanguagePrimitives.FastGenericComparer<'T>
Set<'T>(comparer, SetEmpty)
-#if !FX_NO_BINARY_SERIALIZATION
[]
member __.OnSerializing(context: System.Runtime.Serialization.StreamingContext) =
ignore context
@@ -554,7 +550,6 @@ type Set<[]'T when 'T: comparison >(comparer:IComparer<'T
comparer <- LanguagePrimitives.FastGenericComparer<'T>
tree <- SetTree.ofArray comparer serializedData
serializedData <- null
-#endif
[]
member internal set.Comparer = comparer
diff --git a/src/fsharp/IlxGen.fs b/src/fsharp/IlxGen.fs
index c188b548073..cdd9c84f71c 100644
--- a/src/fsharp/IlxGen.fs
+++ b/src/fsharp/IlxGen.fs
@@ -7370,13 +7370,10 @@ and GenExnDef cenv mgbuf eenv m (exnc: Tycon) =
mkLdarg 2us
mkNormalCall (mkILCtorMethSpecForTy (g.iltyp_Exception, [serializationInfoType; streamingContextType])) ],
None))
-
-//#if BE_SECURITY_TRANSPARENT
+
[ilCtorDefForSerialziation]
-//#else
(*
let getObjectDataMethodForSerialization =
-
let ilMethodDef =
mkILNonGenericVirtualMethod
("GetObjectData", ILMemberAccess.Public,
@@ -7404,7 +7401,7 @@ and GenExnDef cenv mgbuf eenv m (exnc: Tycon) =
| _ -> []
let ilTypeName = tref.Name
-
+
let interfaces = exnc.ImmediateInterfaceTypesOfFSharpTycon |> List.map (GenType cenv.amap m eenv.tyenv)
let tdef =
mkILGenericClass
diff --git a/src/fsharp/XmlAdapters.fs b/src/fsharp/XmlAdapters.fs
new file mode 100644
index 00000000000..4f48955945a
--- /dev/null
+++ b/src/fsharp/XmlAdapters.fs
@@ -0,0 +1,23 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+namespace Microsoft.FSharp.Core
+open System.Reflection
+
+//Replacement for: System.Security.SecurityElement.Escape(line) All platforms
+module internal XmlAdapters =
+ open System.Text
+ open Microsoft.FSharp.Collections
+
+ let s_escapeChars = [| '<'; '>'; '\"'; '\''; '&' |]
+
+ let getEscapeSequence c =
+ match c with
+ | '<' -> "<"
+ | '>' -> ">"
+ | '\"' -> """
+ | '\'' -> "'"
+ | '&' -> "&"
+ | _ as ch -> ch.ToString()
+
+ let escape str = String.collect getEscapeSequence str
+
diff --git a/src/fsharp/fsc.fs b/src/fsharp/fsc.fs
index 27150984738..0713a1bd6f4 100644
--- a/src/fsharp/fsc.fs
+++ b/src/fsharp/fsc.fs
@@ -1066,13 +1066,10 @@ module MainModuleBuilder =
elif not(tcConfig.target.IsExe) || not(tcConfig.includewin32manifest) || not(tcConfig.win32res = "") || runningOnMono then ""
// otherwise, include the default manifest
else
-#if FX_NO_RUNTIMEENVIRONMENT
- // On coreclr default manifest is alongside the compiler
- Path.Combine(System.AppContext.BaseDirectory, @"default.win32manifest")
-#else
- // On the desktop default manifest is alongside the clr
- Path.Combine(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(), @"default.win32manifest")
-#endif
+ let path = Path.Combine(System.AppContext.BaseDirectory, @"default.win32manifest")
+ if File.Exists(path) then path
+ else Path.Combine(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(), @"default.win32manifest")
+
let nativeResources =
[ for av in assemblyVersionResources findAttribute assemblyVersion do
yield ILNativeResource.Out av
@@ -1720,11 +1717,7 @@ let main0(ctok, argv, legacyReferenceResolver, bannerAlreadyPrinted,
let directoryBuildingFrom = Directory.GetCurrentDirectory()
let setProcessThreadLocals tcConfigB =
match tcConfigB.preferredUiLang with
-#if FX_RESHAPED_GLOBALIZATION
- | Some s -> CultureInfo.CurrentUICulture <- new CultureInfo(s)
-#else
| Some s -> Thread.CurrentThread.CurrentUICulture <- new CultureInfo(s)
-#endif
| None -> ()
if tcConfigB.utf8output then
Console.OutputEncoding <- Encoding.UTF8
diff --git a/src/fsharp/fsi/console.fs b/src/fsharp/fsi/console.fs
index aa57916df52..39b2c81e934 100644
--- a/src/fsharp/fsi/console.fs
+++ b/src/fsharp/fsi/console.fs
@@ -14,8 +14,6 @@ open Internal.Utilities
module internal ConsoleOptions =
let readKeyFixup (c:char) =
-#if FX_NO_SERVERCODEPAGES
-#else
// Assumes the c:char is actually a byte in the System.Console.InputEncoding.
// Convert it to a Unicode char through the encoding.
if 0 <= int c && int c <= 255 then
@@ -27,7 +25,6 @@ module internal ConsoleOptions =
c // no fix up
else
assert("readKeyFixHook: given char is outside the 0..255 byte range" = "")
-#endif
c
type internal Style = Prompt | Out | Error
diff --git a/src/fsharp/fsi/fsi.fs b/src/fsharp/fsi/fsi.fs
index a0997a46d23..7032d3a1ac6 100644
--- a/src/fsharp/fsi/fsi.fs
+++ b/src/fsharp/fsi/fsi.fs
@@ -389,9 +389,7 @@ type internal FsiValuePrinter(fsi: FsiEvaluationSessionHostConfig, g: TcGlobals,
| PrintExpr ->
anyToLayoutCall.AnyToLayout(opts, x, ty)
with
-#if !FX_REDUCED_EXCEPTIONS
| :? ThreadAbortException -> Layout.wordL (TaggedTextOps.tagText "")
-#endif
| e ->
#if DEBUG
printf "\n\nPrintValue: x = %+A and ty=%s\n" x (ty.FullName)
@@ -805,7 +803,6 @@ let internal InstallErrorLoggingOnThisThread errorLogger =
SetThreadErrorLoggerNoUnwind(errorLogger)
SetThreadBuildPhaseNoUnwind(BuildPhase.Interactive)
-#if !FX_NO_SERVERCODEPAGES
/// Set the input/output encoding. The use of a thread is due to a known bug on
/// on Vista where calls to Console.InputEncoding can block the process.
let internal SetServerCodePages(fsiOptions: FsiCommandLineOptions) =
@@ -835,7 +832,6 @@ let internal SetServerCodePages(fsiOptions: FsiCommandLineOptions) =
if not !successful then
System.Windows.Forms.MessageBox.Show(FSIstrings.SR.fsiConsoleProblem()) |> ignore
#endif
-#endif
//----------------------------------------------------------------------------
// Prompt printing
@@ -1340,7 +1336,6 @@ type internal FsiDynamicCompiler
//----------------------------------------------------------------------------
// ctrl-c handling
//----------------------------------------------------------------------------
-
module internal NativeMethods =
type ControlEventHandler = delegate of int -> bool
@@ -1402,14 +1397,6 @@ type internal FsiInterruptController(fsiOptions : FsiCommandLineOptions,
Microsoft.FSharp.Silverlight.InterruptThread(threadToKill.ManagedThreadId)
ctrlEventActions <- action :: ctrlEventActions;
-#else
-#if FX_NO_THREADABORT
- ignore threadToKill
- ignore pauseMilliseconds
- ignore fsiConsoleOutput
- ignore CTRL_C
- ignore fsiOptions
- exitViaKillThread <- false
#else
if !progress then fprintfn fsiConsoleOutput.Out "installing CtrlC handler"
// WINDOWS TECHNIQUE: .NET has more safe points, and you can do more when a safe point.
@@ -1437,18 +1424,18 @@ type internal FsiInterruptController(fsiOptions : FsiCommandLineOptions,
if !progress then fsiConsoleOutput.uprintnfn "%s" (FSIstrings.SR.fsiAbortingMainThread())
killThreadRequest <- NoRequest
threadToKill.Abort()
- ()),Name="ControlCAbortThread")
+ ()),Name="ControlCAbortThread")
killerThread.IsBackground <- true
- killerThread.Start()
-
+ killerThread.Start()
+
let ctrlEventHandler = new NativeMethods.ControlEventHandler(fun i -> if i = CTRL_C then (raiseCtrlC(); true) else false )
ctrlEventHandlers <- ctrlEventHandler :: ctrlEventHandlers
ctrlEventActions <- raiseCtrlC :: ctrlEventActions
let _resultOK = NativeMethods.SetConsoleCtrlHandler(ctrlEventHandler,true)
exitViaKillThread <- false // don't exit via kill thread
- with e ->
+ with e ->
if !progress then fprintfn fsiConsoleOutput.Error "Failed to install ctrl-c handler using Windows technique - trying to install one using Unix signal handling...";
- // UNIX TECHNIQUE: We start up a killer thread, and it watches the mutable reference location.
+ // UNIX TECHNIQUE: We start up a killer thread, and it watches the mutable reference location.
// We can't have a dependency on Mono DLLs (indeed we don't even have them!)
// So SOFT BIND the following code:
// Mono.Unix.Native.Stdlib.signal(Mono.Unix.Native.Signum.SIGINT,new Mono.Unix.Native.SignalHandler(fun n -> PosixSignalProcessor.PosixInvoke(n))) |> ignore;
@@ -1507,8 +1494,6 @@ type internal FsiInterruptController(fsiOptions : FsiCommandLineOptions,
| Choice2Of2 e ->
fprintf fsiConsoleOutput.Error "%s" (FSIstrings.SR.fsiCouldNotInstallCtrlCHandler(e.Message))
exitViaKillThread <- false
-#endif
-
member x.PosixInvoke(n:int) =
// we run this code once with n = -1 to make sure it is JITted before execution begins
@@ -2034,13 +2019,11 @@ type internal FsiInteractionProcessor
fsiInterruptController.InterruptAllowed <- InterruptIgnored;
res
with
-#if !FX_REDUCED_EXCEPTIONS
| :? ThreadAbortException ->
fsiInterruptController.ClearInterruptRequest()
fsiInterruptController.InterruptAllowed <- InterruptIgnored;
(try Thread.ResetAbort() with _ -> ());
(istate,CtrlC)
-#endif
| e ->
fsiInterruptController.ClearInterruptRequest()
fsiInterruptController.InterruptAllowed <- InterruptIgnored;
@@ -2361,7 +2344,6 @@ let internal DriveFsiEventLoop (fsi: FsiEvaluationSessionHostConfig, fsiConsoleO
if !progress then fprintfn fsiConsoleOutput.Out "MAIN: entering event loop...";
fsi.EventLoopRun()
with
-#if !FX_REDUCED_EXCEPTIONS
| :? ThreadAbortException ->
// If this TAE handler kicks it's almost certainly too late to save the
// state of the process - the state of the message loop may have been corrupted
@@ -2369,7 +2351,6 @@ let internal DriveFsiEventLoop (fsi: FsiEvaluationSessionHostConfig, fsiConsoleO
(try Thread.ResetAbort() with _ -> ());
true
// Try again, just case we can restart
-#endif
| e ->
stopProcessingRecovery e range0;
true
@@ -2466,20 +2447,14 @@ type FsiEvaluationSession (fsi: FsiEvaluationSessionHostConfig, argv:string[], i
do
match tcConfigB.preferredUiLang with
-#if FX_RESHAPED_GLOBALIZATION
- | Some s -> System.Globalization.CultureInfo.CurrentUICulture <- new System.Globalization.CultureInfo(s)
-#else
| Some s -> Thread.CurrentThread.CurrentUICulture <- new System.Globalization.CultureInfo(s)
-#endif
| None -> ()
-#if !FX_NO_SERVERCODEPAGES
- do
- try
- SetServerCodePages fsiOptions
- with e ->
+ do
+ try
+ SetServerCodePages fsiOptions
+ with e ->
warning(e)
-#endif
do
updateBannerText() // resetting banner text after parsing options
diff --git a/src/fsharp/lex.fsl b/src/fsharp/lex.fsl
index 0af96d71c9a..b72b15e8e9a 100644
--- a/src/fsharp/lex.fsl
+++ b/src/fsharp/lex.fsl
@@ -85,11 +85,7 @@ let parseInt32 (s:string) =
let mutable p = 0
let sign = getSign32 s &p l
let specifier = get0OXB s &p l
-#if FX_RESHAPED_GLOBALIZATION
- match CultureInfo.InvariantCulture.TextInfo.ToLower(specifier) with
-#else
match Char.ToLower(specifier,CultureInfo.InvariantCulture) with
-#endif
| 'x' -> sign * (int32 (Convert.ToUInt32(UInt64.Parse(s.Substring(p), NumberStyles.AllowHexSpecifier,CultureInfo.InvariantCulture))))
| 'b' -> sign * (int32 (Convert.ToUInt32(parseBinaryUInt64 s p l)))
| 'o' -> sign * (int32 (Convert.ToUInt32(parseOctalUInt64 s p l)))
diff --git a/src/fsharp/lib.fs b/src/fsharp/lib.fs
index f121639005f..9a2a80f2b12 100755
--- a/src/fsharp/lib.fs
+++ b/src/fsharp/lib.fs
@@ -522,9 +522,7 @@ module UnmanagedProcessExecutionOptions =
extern UInt32 private GetLastError()
// Translation of C# from http://swikb/v1/DisplayOnlineDoc.aspx?entryID=826 and copy in bug://5018
-#if !FX_NO_SECURITY_PERMISSIONS
[]
-#endif
let EnableHeapTerminationOnCorruption() =
if (System.Environment.OSVersion.Version.Major >= 6 && // If OS is Vista or higher
System.Environment.Version.Major < 3) then // and CLR not 3.0 or higher
diff --git a/src/fsharp/service/Reactor.fs b/src/fsharp/service/Reactor.fs
index bae570d0c5f..dd307ca13e1 100755
--- a/src/fsharp/service/Reactor.fs
+++ b/src/fsharp/service/Reactor.fs
@@ -64,11 +64,7 @@ type Reactor() =
Trace.TraceInformation("Reactor: {0:n3} pausing {1} milliseconds", DateTime.Now.TimeOfDay.TotalSeconds, pauseBeforeBackgroundWork)
pauseBeforeBackgroundWork
return! inbox.TryReceive(timeout) }
-#if FX_RESHAPED_GLOBALIZATION
- CultureInfo.CurrentUICulture <- culture
-#else
Thread.CurrentThread.CurrentUICulture <- culture
-#endif
match msg with
| Some (SetBackgroundOp bgOpOpt) ->
//Trace.TraceInformation("Reactor: --> set background op, remaining {0}", inbox.CurrentQueueLength)
diff --git a/src/utils/CompilerLocationUtils.fs b/src/utils/CompilerLocationUtils.fs
index 41de8bb911c..da626b54c5e 100644
--- a/src/utils/CompilerLocationUtils.fs
+++ b/src/utils/CompilerLocationUtils.fs
@@ -23,20 +23,7 @@ module internal FSharpEnvironment =
#endif
let versionOf<'t> =
-#if FX_RESHAPED_REFLECTION
- let aq = (typeof<'t>).AssemblyQualifiedName
- let version =
- if aq <> null then
- let x = aq.Split(',', ' ') |> Seq.filter(fun x -> x.StartsWith("Version=", StringComparison.OrdinalIgnoreCase)) |> Seq.tryHead
- match x with
- | Some(x) -> x.Substring(8)
- | _ -> null
- else
- null
- version
-#else
typeof<'t>.Assembly.GetName().Version.ToString()
-#endif
let FSharpCoreLibRunningVersion =
try match versionOf with
@@ -200,7 +187,7 @@ module internal FSharpEnvironment =
#else
// Check for an app.config setting to redirect the default compiler location
// Like fsharp-compiler-location
- try
+ try
// FSharp.Compiler support setting an appkey for compiler location. I've never seen this used.
let result = tryAppConfig "fsharp-compiler-location"
match result with
diff --git a/src/utils/prim-lexing.fs b/src/utils/prim-lexing.fs
index c397257b46c..fe71c121975 100644
--- a/src/utils/prim-lexing.fs
+++ b/src/utils/prim-lexing.fs
@@ -334,11 +334,7 @@ namespace Internal.Utilities.Text.Lexing
// ways
let baseForUnicodeCategories = numLowUnicodeChars+numSpecificUnicodeChars*2
let unicodeCategory =
-#if FX_RESHAPED_GLOBALIZATION
- System.Globalization.CharUnicodeInfo.GetUnicodeCategory(inp)
-#else
System.Char.GetUnicodeCategory(inp)
-#endif
//System.Console.WriteLine("inp = {0}, unicodeCategory = {1}", [| box inp; box unicodeCategory |]);
int trans.[state].[baseForUnicodeCategories + int32 unicodeCategory]
else
@@ -349,10 +345,9 @@ namespace Internal.Utilities.Text.Lexing
if c = inp
then int trans.[state].[baseForSpecificUnicodeChars+i*2+1]
else loop(i+1)
-
loop 0
let eofPos = numLowUnicodeChars + 2*numSpecificUnicodeChars + numUnicodeCategories
-
+
let rec scanUntilSentinel lexBuffer state =
// Return an endOfScan after consuming the input
let a = int accept.[state]
diff --git a/src/utils/reshapedmsbuild.fs b/src/utils/reshapedmsbuild.fs
index 75859f44765..20b5cd6f961 100644
--- a/src/utils/reshapedmsbuild.fs
+++ b/src/utils/reshapedmsbuild.fs
@@ -21,41 +21,45 @@ type ITaskItem =
abstract member CopyMetadataTo : ITaskItem -> unit
abstract member CloneCustomMetadata : IDictionary
-namespace Microsoft.Build.Utilities
-open Microsoft.Build.Framework
-open Microsoft.FSharp.Core.ReflectionAdapters
-open System
-open System.Collections
-open System.Reflection
-
-type TaskItem (itemSpec:string) =
- let assembly = Assembly.Load(new AssemblyName("Microsoft.Build.Utilities.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"))
- let buildUtilitiesTaskType = assembly.GetType("Microsoft.Build.Utilities.Task")
- let instance = Activator.CreateInstance(buildUtilitiesTaskType, [|itemSpec|])
-
- interface ITaskItem with
- member this.ItemSpec
- with get () :string = (instance.GetPropertyValue("ItemSpec") :?> string)
- and set (value:string) = (instance.SetPropertyValue("ItemSpec", value)); ()
- member this.MetadataNames
- with get () :ICollection = (instance.GetPropertyValue("MetadataNames") :?> ICollection)
- member this.MetadataCount
- with get () :int = (instance.GetPropertyValue("MetadataCount") :?> int)
- member this.CopyMetadataTo(iTaskItem) =
- let m = buildUtilitiesTaskType.GetMethod("CopyMetadataTo", [| typeof |])
- m.Invoke(instance, [|iTaskItem :>obj|]) |> ignore
- member this.CloneCustomMetadata =
- let m = buildUtilitiesTaskType.GetMethod("CloneCustomMetadata", [||])
- (m.Invoke(instance,[||])) :?>IDictionary
- member this.GetMetadata(metadataName) =
- let m = buildUtilitiesTaskType.GetMethod("GetMetadata", [|typeof|])
- (m.Invoke(instance,[|metadataName|])) :?>string
- member this.RemoveMetadata(metadataName) =
- let m = buildUtilitiesTaskType.GetMethod("RemoveMetadata", [|typeof|])
- (m.Invoke(instance,[|metadataName|])) :?>string |>ignore
- member this.SetMetadata(metadataName, metadataValue) =
- let m = buildUtilitiesTaskType.GetMethod("SetMetadata", [|typeof;typeof|])
- (m.Invoke(instance,[|metadataName; metadataValue|])) |>ignore
+module Utilities =
+ open Microsoft.Build.Framework
+ open System
+ open System.Collections
+ open System.Reflection
+
+ type System.Object with
+ member this.GetPropertyValue(propName) = this.GetType().GetProperty(propName, BindingFlags.Public).GetValue(this, null)
+ member this.SetPropertyValue(propName, propValue) = this.GetType().GetProperty(propName, BindingFlags.Public).SetValue(this, propValue, null)
+ member this.GetMethod(methodName, argTypes) = this.GetType().GetMethod(methodName, argTypes, [||])
+
+ type TaskItem (itemSpec:string) =
+ let assembly = Assembly.Load(new AssemblyName("Microsoft.Build.Utilities.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"))
+ let buildUtilitiesTaskType = assembly.GetType("Microsoft.Build.Utilities.Task")
+ let instance = Activator.CreateInstance(buildUtilitiesTaskType, [|itemSpec|])
+
+ interface ITaskItem with
+ member this.ItemSpec
+ with get () :string = (instance.GetPropertyValue("ItemSpec") :?> string)
+ and set (value:string) = (instance.SetPropertyValue("ItemSpec", value)); ()
+ member this.MetadataNames
+ with get () :ICollection = (instance.GetPropertyValue("MetadataNames") :?> ICollection)
+ member this.MetadataCount
+ with get () :int = (instance.GetPropertyValue("MetadataCount") :?> int)
+ member this.CopyMetadataTo(iTaskItem) =
+ let m = buildUtilitiesTaskType.GetMethod("CopyMetadataTo", [| typeof |])
+ m.Invoke(instance, [|iTaskItem :>obj|]) |> ignore
+ member this.CloneCustomMetadata =
+ let m = buildUtilitiesTaskType.GetMethod("CloneCustomMetadata", [||])
+ (m.Invoke(instance,[||])) :?>IDictionary
+ member this.GetMetadata(metadataName) =
+ let m = buildUtilitiesTaskType.GetMethod("GetMetadata", [|typeof|])
+ (m.Invoke(instance,[|metadataName|])) :?>string
+ member this.RemoveMetadata(metadataName) =
+ let m = buildUtilitiesTaskType.GetMethod("RemoveMetadata", [|typeof|])
+ (m.Invoke(instance,[|metadataName|])) :?>string |>ignore
+ member this.SetMetadata(metadataName, metadataValue) =
+ let m = buildUtilitiesTaskType.GetMethod("SetMetadata", [|typeof;typeof|])
+ (m.Invoke(instance,[|metadataName; metadataValue|])) |>ignore
namespace FSharp.Compiler
open System
@@ -66,11 +70,10 @@ open System.Linq
open System.Runtime.Versioning
open FSComp
open Microsoft.Win32
+open Microsoft.Build.Framework.Utilities
module internal MsBuildAdapters =
- open Microsoft.FSharp.Core.ReflectionAdapters
-
///
/// Used to specify the targeted version of the .NET Framework for some methods of ToolLocationHelper. This is meant to mimic
/// the official version here: https://source.dot.net/#q=TargetDotNetFrameworkVersion.
@@ -102,7 +105,6 @@ module internal MsBuildAdapters =
module internal ToolLocationHelper =
open Microsoft.Build.Framework
- open Microsoft.FSharp.Core.ReflectionAdapters
open System.Linq
open System.Reflection
open MsBuildAdapters
diff --git a/src/utils/reshapedreflection.fs b/src/utils/reshapedreflection.fs
deleted file mode 100644
index 0b143951dda..00000000000
--- a/src/utils/reshapedreflection.fs
+++ /dev/null
@@ -1,401 +0,0 @@
-// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
-
-namespace Microsoft.FSharp.Core
-open System.Reflection
-
-//Replacement for: System.Security.SecurityElement.Escape(line) All platforms
-module internal XmlAdapters =
- open System.Text
- open Microsoft.FSharp.Collections
-
- let s_escapeChars = [| '<'; '>'; '\"'; '\''; '&' |]
-
- let getEscapeSequence c =
- match c with
- | '<' -> "<"
- | '>' -> ">"
- | '\"' -> """
- | '\'' -> "'"
- | '&' -> "&"
- | _ as ch -> ch.ToString()
-
- let escape str = String.collect getEscapeSequence str
-
-#if FX_RESHAPED_REFLECTION
-module internal ReflectionAdapters =
- open System
- open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators
- open Microsoft.FSharp.Collections
- open PrimReflectionAdapters
-
- let inline hasFlag (flag : BindingFlags) f = (f &&& flag) = flag
- let isDeclaredFlag f = hasFlag BindingFlags.DeclaredOnly f
- let isPublicFlag f = hasFlag BindingFlags.Public f
- let isStaticFlag f = hasFlag BindingFlags.Static f
- let isInstanceFlag f = hasFlag BindingFlags.Instance f
- let isNonPublicFlag f = hasFlag BindingFlags.NonPublic f
-
- let isAcceptable bindingFlags isStatic isPublic =
- // 1. check if member kind (static\instance) was specified in flags
- ((isStaticFlag bindingFlags && isStatic) || (isInstanceFlag bindingFlags && not isStatic)) &&
- // 2. check if member accessibility was specified in flags
- ((isPublicFlag bindingFlags && isPublic) || (isNonPublicFlag bindingFlags && not isPublic))
-
- let publicFlags = BindingFlags.Public ||| BindingFlags.Instance ||| BindingFlags.Static
-
- let commit (results : _[]) =
- match results with
- | [||] -> null
- | [| m |] -> m
- | _ -> raise (AmbiguousMatchException())
-
- let canUseAccessor (accessor : MethodInfo) nonPublic =
- (not (isNull (box accessor))) && (accessor.IsPublic || nonPublic)
-
- type System.Type with
- member this.GetTypeInfo() = IntrospectionExtensions.GetTypeInfo(this)
- member this.GetRuntimeProperties() = RuntimeReflectionExtensions.GetRuntimeProperties(this)
- member this.GetRuntimeEvents() = RuntimeReflectionExtensions.GetRuntimeEvents(this)
- member this.Attributes = this.GetTypeInfo().Attributes
- member this.GetCustomAttributes(attrTy, inherits) : obj[] = downcast box(CustomAttributeExtensions.GetCustomAttributes(this.GetTypeInfo(), attrTy, inherits) |> Seq.toArray)
- member this.GetNestedType (name, bindingFlags) =
- // MSDN: http://msdn.microsoft.com/en-us/library/0dcb3ad5.aspx
- // The following BindingFlags filter flags can be used to define which nested types to include in the search:
- // You must specify either BindingFlags.Public or BindingFlags.NonPublic to get a return.
- // Specify BindingFlags.Public to include public nested types in the search.
- // Specify BindingFlags.NonPublic to include non-public nested types (that is, private, internal, and protected nested types) in the search.
- // This method returns only the nested types of the current type. It does not search the base classes of the current type.
- // To find types that are nested in base classes, you must walk the inheritance hierarchy, calling GetNestedType at each level.
- let nestedTyOpt =
- this.GetTypeInfo().DeclaredNestedTypes
- |> Seq.tryFind (fun nestedTy ->
- nestedTy.Name = name && (
- (isPublicFlag bindingFlags && nestedTy.IsNestedPublic) ||
- (isNonPublicFlag bindingFlags && (nestedTy.IsNestedPrivate || nestedTy.IsNestedFamily || nestedTy.IsNestedAssembly || nestedTy.IsNestedFamORAssem || nestedTy.IsNestedFamANDAssem))
- )
- )
- |> Option.map (fun ti -> ti.AsType())
- defaultArg nestedTyOpt null
- // use different sources based on Declared flag
- member this.GetMethods(bindingFlags) =
- (if isDeclaredFlag bindingFlags then this.GetTypeInfo().DeclaredMethods else this.GetRuntimeMethods())
- |> Seq.filter (fun m -> isAcceptable bindingFlags m.IsStatic m.IsPublic)
- |> Seq.toArray
-
- // use different sources based on Declared flag
- member this.GetFields(bindingFlags) =
- (if isDeclaredFlag bindingFlags then this.GetTypeInfo().DeclaredFields else this.GetRuntimeFields())
- |> Seq.filter (fun f -> isAcceptable bindingFlags f.IsStatic f.IsPublic)
- |> Seq.toArray
-
- // use different sources based on Declared flag
- member this.GetProperties(?bindingFlags) =
- let bindingFlags = defaultArg bindingFlags publicFlags
- (if isDeclaredFlag bindingFlags then this.GetTypeInfo().DeclaredProperties else this.GetRuntimeProperties())
- |> Seq.filter (fun pi->
- let mi = match pi.GetMethod with | null -> pi.SetMethod | _ -> pi.GetMethod
- if mi = null then false
- else isAcceptable bindingFlags mi.IsStatic mi.IsPublic
- )
- |> Seq.toArray
-
- member this.GetEvents(?bindingFlags) =
- let bindingFlags = defaultArg bindingFlags publicFlags
- (if isDeclaredFlag bindingFlags then this.GetTypeInfo().DeclaredEvents else this.GetRuntimeEvents())
- |> Seq.filter (fun ei->
- let m = ei.GetAddMethod(true)
- if m = null then false
- else isAcceptable bindingFlags m.IsStatic m.IsPublic
- )
- |> Seq.toArray
-
- member this.GetEvent(name, ?bindingFlags) =
- let bindingFlags = defaultArg bindingFlags publicFlags
- this.GetEvents(bindingFlags)
- |> Array.filter (fun ei -> ei.Name = name)
- |> commit
-
- member this.GetConstructor(bindingFlags, _binder, argsT:Type[], _parameterModifiers) =
- this.GetConstructor(bindingFlags,argsT)
-
- member this.GetMethod(name, ?bindingFlags) =
- let bindingFlags = defaultArg bindingFlags publicFlags
- this.GetMethods(bindingFlags)
- |> Array.filter(fun m -> m.Name = name)
- |> commit
-
- member this.GetMethod(name, _bindingFlags, _binder, argsT:Type[], _parameterModifiers) =
- this.GetMethod(name, argsT)
-
- // use different sources based on Declared flag
- member this.GetProperty(name, bindingFlags) =
- this.GetProperties(bindingFlags)
- |> Array.filter (fun pi -> pi.Name = name)
- |> commit
-
- member this.GetMethod(methodName, args:Type[], ?bindingFlags) =
- let bindingFlags = defaultArg bindingFlags publicFlags
- let compareSequences parms args =
- Seq.compareWith (fun parm arg -> if parm <> arg then 1 else 0) parms args
- this.GetMethods(bindingFlags)
- |> Array.filter(fun m -> m.Name = methodName && (compareSequences (m.GetParameters() |> Seq.map(fun x -> x.ParameterType)) args) = 0)
- |> commit
-
- member this.GetNestedTypes(?bindingFlags) =
- let bindingFlags = defaultArg bindingFlags publicFlags
- this.GetTypeInfo().DeclaredNestedTypes
- |> Seq.filter (fun nestedTy->
- (isPublicFlag bindingFlags && nestedTy.IsNestedPublic) ||
- (isNonPublicFlag bindingFlags && (nestedTy.IsNestedPrivate || nestedTy.IsNestedFamily || nestedTy.IsNestedAssembly || nestedTy.IsNestedFamORAssem || nestedTy.IsNestedFamANDAssem)))
- |> Seq.map (fun ti -> ti.AsType())
- |> Seq.toArray
-
- member this.GetEnumUnderlyingType() =
- Enum.GetUnderlyingType(this)
-
- member this.InvokeMember(memberName, bindingFlags, _binder, target:obj, arguments:obj[], _cultureInfo) =
- let m = this.GetMethod(memberName, (arguments |> Seq.map(fun x -> x.GetType()) |> Seq.toArray), bindingFlags)
- match m with
- | null -> raise <| System.MissingMethodException(String.Format("Method '{0}.{1}' not found.", this.FullName, memberName))
- | _ -> m.Invoke(target, arguments)
-
- member this.IsGenericType = this.GetTypeInfo().IsGenericType
-
- member this.IsGenericTypeDefinition = this.GetTypeInfo().IsGenericTypeDefinition
-
- member this.GetGenericArguments() =
- if this.IsGenericTypeDefinition then this.GetTypeInfo().GenericTypeParameters
- elif this.IsGenericType then this.GenericTypeArguments
- else [||]
-
- member this.IsInterface = this.GetTypeInfo().IsInterface
-
- member this.IsPublic = this.GetTypeInfo().IsPublic
-
- member this.IsNestedPublic = this.GetTypeInfo().IsNestedPublic
-
- member this.IsClass = this.GetTypeInfo().IsClass
-
- member this.IsValueType = this.GetTypeInfo().IsValueType
-
- member this.IsSealed = this.GetTypeInfo().IsSealed
-
- member this.BaseType = this.GetTypeInfo().BaseType
-
- member this.GetConstructor(bindingFlags, parameterTypes : Type[]) =
- this.GetTypeInfo().DeclaredConstructors
- |> Seq.filter (fun ci -> isAcceptable bindingFlags ci.IsStatic ci.IsPublic)
- |> Seq.filter (fun ci ->
- (
- let parameters = ci.GetParameters()
- (parameters.Length = parameterTypes.Length) &&
- (parameterTypes, parameters) ||> Array.forall2 (fun ty pi -> pi.ParameterType.Equals ty)
- )
- )
- |> Seq.toArray
- |> commit
-
- member this.GetConstructor(parameterTypes : Type[]) =
- this.GetConstructor(BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.Instance, parameterTypes)
-
- member this.GetConstructors(?bindingFlags) =
- let bindingFlags = defaultArg bindingFlags (BindingFlags.Public ||| BindingFlags.Instance)
- // type initializer will also be included in resultset
- this.GetTypeInfo().DeclaredConstructors
- |> Seq.filter (fun ci -> isAcceptable bindingFlags ci.IsStatic ci.IsPublic)
- |> Seq.toArray
-
- // MSDN: returns an array of Type objects representing all the interfaces implemented or inherited by the current Type.
- member this.GetInterfaces() = this.GetTypeInfo().ImplementedInterfaces |> Seq.toArray
-
- member this.GetMethods() = this.GetMethods(publicFlags)
-
- member this.Assembly = this.GetTypeInfo().Assembly
-
- member this.IsSubclassOf(otherTy : Type) = this.GetTypeInfo().IsSubclassOf(otherTy)
-
- member this.IsEnum = this.GetTypeInfo().IsEnum;
-
- member this.GetField(name, bindingFlags) =
- this.GetFields(bindingFlags)
- |> Array.filter (fun fi -> fi.Name = name)
- |> commit
-
- member this.GetField(name) = RuntimeReflectionExtensions.GetRuntimeField(this, name)
-
- member this.GetProperty(name, propertyType, parameterTypes : Type[]) =
- this.GetProperties()
- |> Array.filter (fun pi ->
- pi.Name = name &&
- pi.PropertyType = propertyType &&
- (
- let parameters = pi.GetIndexParameters()
- (parameters.Length = parameterTypes.Length) &&
- (parameterTypes, parameters) ||> Array.forall2 (fun ty pi -> pi.ParameterType.Equals ty)
- )
- )
- |> commit
-
- static member GetTypeCode(ty : Type) =
- if typeof.Equals ty then TypeCode.Int32
- elif typeof.Equals ty then TypeCode.Int64
- elif typeof.Equals ty then TypeCode.Byte
- elif ty = typeof then TypeCode.SByte
- elif ty = typeof then TypeCode.Int16
- elif ty = typeof then TypeCode.UInt16
- elif ty = typeof then TypeCode.UInt32
- elif ty = typeof then TypeCode.UInt64
- elif ty = typeof then TypeCode.Single
- elif ty = typeof then TypeCode.Double
- elif ty = typeof then TypeCode.Decimal
- else TypeCode.Object
-
- member this.Module =
- this.GetTypeInfo().Module
-
- member this.MetadataToken =
- // TODO: is this an adequate replacement for MetadataToken
- let s = String.Format("{0}", this.ToString())
- s.GetHashCode()
-
- type System.Reflection.EventInfo with
-
- member this.GetAddMethod() =
- this.AddMethod
-
- member this.GetRemoveMethod() =
- this.RemoveMethod
-
- member this.MetadataToken =
- // TODO: is this an adequate replacement for MetadataToken
- let s = String.Format("{0},{0}", this.DeclaringType.ToString(), this.ToString())
- s.GetHashCode()
-
- type System.Reflection.FieldInfo with
- member this.GetRawConstantValue() =
- this.GetValue(null)
-
- member this.MetadataToken =
- // TODO: is this an adequate replacement for MetadataToken
- let s = String.Format("{0},{0}", this.DeclaringType.ToString(), this.ToString())
- s.GetHashCode()
-
- type System.Reflection.MemberInfo with
- member this.GetCustomAttributes(attrTy, inherits) : obj[] = downcast box(CustomAttributeExtensions.GetCustomAttributes(this, attrTy, inherits) |> Seq.toArray)
-
- // TODO: is this an adequate replacement for MetadataToken
- member this.MetadataToken =
- // TODO: is this an adequate replacement for MetadataToken
- let s = String.Format("{0},{0}", this.DeclaringType.ToString(), this.ToString())
- s.GetHashCode()
-
- type System.Reflection.MethodInfo with
-
- member this.GetCustomAttributes(inherits : bool) : obj[] = downcast box(CustomAttributeExtensions.GetCustomAttributes(this, inherits) |> Seq.toArray)
-
- member this.Invoke(obj, _bindingFlags, _binder, args, _ci) =
- this.Invoke(obj, args)
-
- member this.MetadataToken =
- // TODO: is this an adequate replacement for MetadataToken
- let s = String.Format("{0},{0}", this.DeclaringType.ToString(), this.ToString())
- s.GetHashCode()
-
- type System.Reflection.ParameterInfo with
-
- member this.RawDefaultValue = this.DefaultValue
-
- member this.MetadataToken =
- // TODO: is this an adequate replacement for MetadataToken
- // I really do not understand why: sprintf "%s,%s" (this.ReflectedType.ToString()) (this.ToString()) did not work
- let s = String.Format("{0},{0},{0}", this.Member.DeclaringType.ToString(),this.Member.ToString(), this.ToString())
- s.GetHashCode()
-
- type System.Reflection.PropertyInfo with
-
- member this.GetGetMethod(nonPublic) =
- let mi = this.GetMethod
- if canUseAccessor mi nonPublic then mi
- else null
-
- member this.GetSetMethod(nonPublic) =
- let mi = this.SetMethod
- if canUseAccessor mi nonPublic then mi
- else null
-
- member this.GetGetMethod() = this.GetMethod
-
- member this.GetSetMethod() = this.SetMethod
-
- type System.Reflection.Assembly with
-
- member this.GetTypes() =
- this.DefinedTypes
- |> Seq.map (fun ti -> ti.AsType())
- |> Seq.toArray
-
- member this.GetExportedTypes() =
- this.DefinedTypes
- |> Seq.filter(fun ti -> ti.IsPublic)
- |> Seq.map (fun ti -> ti.AsType())
- |> Seq.toArray
-
- member this.Location =
- this.ManifestModule.FullyQualifiedName
-
- type System.Delegate with
-
- static member CreateDelegate(delegateType, methodInfo : MethodInfo) = methodInfo.CreateDelegate(delegateType)
-
- static member CreateDelegate(delegateType, obj : obj, methodInfo : MethodInfo) = methodInfo.CreateDelegate(delegateType, obj)
-
- type System.Object with
- member this.GetPropertyValue(propName) =
- this.GetType().GetProperty(propName, BindingFlags.Public).GetValue(this, null)
-
- member this.SetPropertyValue(propName, propValue) =
- this.GetType().GetProperty(propName, BindingFlags.Public).SetValue(this, propValue, null)
-
- member this.GetMethod(methodName, argTypes) =
- this.GetType().GetMethod(methodName, argTypes, BindingFlags.Public)
-
- type System.Char with
- static member GetUnicodeCategory(c: char) = System.Globalization.CharUnicodeInfo.GetUnicodeCategory(c)
-
- type System.Reflection.Module with
- member this.MetadataToken =
- // TODO: is this an adequate replacement for MetadataToken
- let s = this.FullyQualifiedName
- s.GetHashCode()
-
-#if COMPILER // This part includes global state in globalLoadContext. Only include this support "once", i.e. when compiling FSharp.Compiler.Private.dll, FSharp.Compiler.Service.dll, fsc-proto.exe
-
- type CustomAssemblyResolver() =
- inherit System.Runtime.Loader.AssemblyLoadContext()
- override this.Load (assemblyName:AssemblyName):Assembly =
- this.LoadFromAssemblyName(assemblyName)
-
- let globalLoadContext =
- // This is an unfortunate temporary fix!!!!
- // ========================================
- // We need to run fsi tests on a very old version of the corclr because of an unfortunate test framework
- // This hack detects that, and uses the old code.
- // On slightly newer code AssemblyLoadContext.Default is the way to go.
- match Seq.tryHead (typeof.GetTypeInfo().Assembly.GetCustomAttributes()) with
- | Some a when a.Version = "4.6.24410.01" -> new CustomAssemblyResolver() :> System.Runtime.Loader.AssemblyLoadContext
- | _ -> System.Runtime.Loader.AssemblyLoadContext.Default
-
- type System.Reflection.Assembly with
- static member LoadFrom(filename:string) =
- globalLoadContext.LoadFromAssemblyPath(filename)
-
- static member UnsafeLoadFrom(filename:string) =
- globalLoadContext.LoadFromAssemblyPath(filename)
-
- type System.Reflection.AssemblyName with
- static member GetAssemblyName(path) =
- System.Runtime.Loader.AssemblyLoadContext.GetAssemblyName(path)
-
-#endif
-
-#endif
diff --git a/src/utils/sformat.fs b/src/utils/sformat.fs
index b490283f674..0c8cc5fc2f4 100644
--- a/src/utils/sformat.fs
+++ b/src/utils/sformat.fs
@@ -38,11 +38,6 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
open Microsoft.FSharp.Collections
open Microsoft.FSharp.Primitives.Basics
-#if FX_RESHAPED_REFLECTION
- open PrimReflectionAdapters
- open ReflectionAdapters
-#endif
-
[]
type LayoutTag =
| ActivePatternCase
@@ -321,11 +316,7 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
StringLimit : int;
#endif
FormatProvider: System.IFormatProvider;
-#if FX_RESHAPED_REFLECTION
- ShowNonPublic : bool
-#else
BindingFlags: System.Reflection.BindingFlags
-#endif
PrintWidth : int;
PrintDepth : int;
PrintLength : int;
@@ -339,11 +330,7 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
StringLimit = System.Int32.MaxValue;
#endif
AttributeProcessor= (fun _ _ _ -> ());
-#if FX_RESHAPED_REFLECTION
- ShowNonPublic = false
-#else
BindingFlags = System.Reflection.BindingFlags.Public;
-#endif
FloatingPointFormat = "g10";
PrintWidth = 80 ;
PrintDepth = 100 ;
@@ -358,11 +345,6 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
open System
open System.Reflection
-#if FX_RESHAPED_REFLECTION
- open PrimReflectionAdapters
- open Microsoft.FSharp.Core.ReflectionAdapters
-#endif
-
[]
type TypeInfo =
| TupleType of Type list
@@ -404,10 +386,7 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
// Analyze an object to see if it the representation
// of an F# value.
- let GetValueInfoOfObject (bindingFlags:BindingFlags) (obj : obj) =
-#if FX_RESHAPED_REFLECTION
- let showNonPublic = isNonPublicFlag bindingFlags
-#endif
+ let GetValueInfoOfObject (bindingFlags:BindingFlags) (obj : obj) =
match obj with
| null -> ObjectValue(obj)
| _ ->
@@ -429,34 +408,18 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
// the type are the actual fields of the type. Again,
// we should be reading attributes here that indicate the
// true structure of the type, e.g. the order of the fields.
-#if FX_RESHAPED_REFLECTION
- elif FSharpType.IsUnion(reprty, showNonPublic) then
- let tag,vals = FSharpValue.GetUnionFields (obj,reprty, showNonPublic)
-#else
elif FSharpType.IsUnion(reprty,bindingFlags) then
let tag,vals = FSharpValue.GetUnionFields (obj,reprty,bindingFlags)
-#endif
let props = tag.GetFields()
let pvals = (props,vals) ||> Array.map2 (fun prop v -> prop.Name,(v, prop.PropertyType))
ConstructorValue(tag.Name, Array.toList pvals)
-#if FX_RESHAPED_REFLECTION
- elif FSharpType.IsExceptionRepresentation(reprty, showNonPublic) then
- let props = FSharpType.GetExceptionFields(reprty, showNonPublic)
- let vals = FSharpValue.GetExceptionFields(obj, showNonPublic)
-#else
elif FSharpType.IsExceptionRepresentation(reprty,bindingFlags) then
let props = FSharpType.GetExceptionFields(reprty,bindingFlags)
let vals = FSharpValue.GetExceptionFields(obj,bindingFlags)
-#endif
let pvals = (props,vals) ||> Array.map2 (fun prop v -> prop.Name,(v, prop.PropertyType))
ExceptionValue(reprty, pvals |> Array.toList)
-#if FX_RESHAPED_REFLECTION
- elif FSharpType.IsRecord(reprty, showNonPublic) then
- let props = FSharpType.GetRecordFields(reprty, showNonPublic)
-#else
elif FSharpType.IsRecord(reprty,bindingFlags) then
let props = FSharpType.GetRecordFields(reprty,bindingFlags)
-#endif
RecordValue(props |> Array.map (fun prop -> prop.Name, prop.GetValue(obj,null), prop.PropertyType) |> Array.toList)
else
ObjectValue(obj)
@@ -491,12 +454,8 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
let string_of_int (i:int) = i.ToString()
let typeUsesSystemObjectToString (ty:System.Type) =
- try
-#if FX_RESHAPED_REFLECTION
- let methInfo = ty.GetRuntimeMethod("ToString",[| |])
-#else
+ try
let methInfo = ty.GetMethod("ToString",BindingFlags.Public ||| BindingFlags.Instance,null,[| |],null)
-#endif
methInfo.DeclaringType = typeof
with e -> false
/// If "str" ends with "ending" then remove it from "str", otherwise no change.
@@ -800,16 +759,8 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
// --------------------------------------------------------------------
let getProperty (ty: Type) (obj: obj) name =
-#if FX_RESHAPED_REFLECTION
- let prop = ty.GetProperty(name, (BindingFlags.Instance ||| BindingFlags.Public ||| BindingFlags.NonPublic))
- if not (isNull prop) then prop.GetValue(obj,[||])
- // Others raise MissingMethodException
- else
- let msg = System.String.Concat([| "Method '"; ty.FullName; "."; name; "' not found." |])
- raise (System.MissingMethodException(msg))
-#else
ty.InvokeMember(name, (BindingFlags.GetProperty ||| BindingFlags.Instance ||| BindingFlags.Public ||| BindingFlags.NonPublic), null, obj, [| |],CultureInfo.InvariantCulture)
-#endif
+
let getField obj (fieldInfo: FieldInfo) =
fieldInfo.GetValue(obj)
@@ -1177,11 +1128,7 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
// If the leafFormatter was directly here, then layout leaves could store strings.
match obj with
| _ when opts.ShowProperties ->
-#if FX_RESHAPED_REFLECTION
- let props = ty.GetProperties(BindingFlags.Instance ||| BindingFlags.Public)
-#else
let props = ty.GetProperties(BindingFlags.GetField ||| BindingFlags.Instance ||| BindingFlags.Public)
-#endif
let fields = ty.GetFields(BindingFlags.Instance ||| BindingFlags.Public) |> Array.map (fun i -> i :> MemberInfo)
let propsAndFields =
props |> Array.map (fun i -> i :> MemberInfo)
@@ -1197,10 +1144,10 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
// massively reign in deep printing of properties
let nDepth = depthLim/10
#if NETSTANDARD
- Array.Sort((propsAndFields),{ new IComparer with member this.Compare(p1,p2) = compare (p1.Name) (p2.Name) } );
-#else
- Array.Sort((propsAndFields :> Array),{ new System.Collections.IComparer with member this.Compare(p1,p2) = compare ((p1 :?> MemberInfo).Name) ((p2 :?> MemberInfo).Name) } );
-#endif
+ Array.Sort((propsAndFields),{ new IComparer with member this.Compare(p1,p2) = compare (p1.Name) (p2.Name) } )
+#else
+ Array.Sort((propsAndFields :> Array),{ new System.Collections.IComparer with member this.Compare(p1,p2) = compare ((p1 :?> MemberInfo).Name) ((p2 :?> MemberInfo).Name) } )
+#endif
if propsAndFields.Length = 0 || (nDepth <= 0) then basicL
else basicL ---
@@ -1311,12 +1258,7 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
let fsi_any_to_layout opts x = anyL ShowTopLevelBinding BindingFlags.Public opts x
#else
// FSharp.Core
-#if FX_RESHAPED_REFLECTION
- let internal anyToStringForPrintf options (showNonPublicMembers : bool) x =
- let bindingFlags = ReflectionUtils.toBindingFlags showNonPublicMembers
-#else
let internal anyToStringForPrintf options (bindingFlags:BindingFlags) x =
-#endif
x |> anyL ShowAll bindingFlags options |> layout_to_string options
#endif
diff --git a/src/utils/sformat.fsi b/src/utils/sformat.fsi
index f7c053e51fc..e6ff9762bb5 100644
--- a/src/utils/sformat.fsi
+++ b/src/utils/sformat.fsi
@@ -302,11 +302,7 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
StringLimit: int;
#endif
FormatProvider: System.IFormatProvider
-#if FX_RESHAPED_REFLECTION
- ShowNonPublic : bool
-#else
BindingFlags: System.Reflection.BindingFlags
-#endif
PrintWidth : int
PrintDepth : int
PrintLength : int
@@ -341,11 +337,7 @@ namespace Microsoft.FSharp.Text.StructuredPrintfImpl
#if FSHARP_CORE // FSharp.Core.dll: Most functions aren't needed in FSharp.Core.dll, but we add one entry for printf
-#if FX_RESHAPED_REFLECTION
- val anyToStringForPrintf: options:FormatOptions -> showNonPublicMembers : bool -> value:'T * Type -> string
-#else
val anyToStringForPrintf: options:FormatOptions -> bindingFlags:System.Reflection.BindingFlags -> value:'T * Type -> string
-#endif
#else
val asTaggedTextWriter: writer: TextWriter -> TaggedTextWriter
val any_to_layout : options:FormatOptions -> value:'T * Type -> Layout
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj b/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
index 24a2132e9c2..cf028bc3d22 100644
--- a/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
+++ b/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
@@ -32,6 +32,7 @@
+
@@ -80,8 +81,9 @@
-
-
+
+
+
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core/DiscrimantedUnionType.fs b/tests/FSharp.Core.UnitTests/FSharp.Core/DiscrimantedUnionType.fs
index 90d30f40a6c..e5a48ad3007 100644
--- a/tests/FSharp.Core.UnitTests/FSharp.Core/DiscrimantedUnionType.fs
+++ b/tests/FSharp.Core.UnitTests/FSharp.Core/DiscrimantedUnionType.fs
@@ -10,17 +10,6 @@ open NUnit.Framework
open FsCheck
open FsCheck.PropOperators
-#if FX_RESHAPED_REFLECTION
-open FSharp.Reflection.FSharpReflectionExtensions
-
-[]
-module PrimReflectionAdapters =
-
- type System.Type with
- member this.IsValueType = this.GetTypeInfo().IsValueType
-#endif
-
-
type EnumUnion =
| A
| B
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core/Microsoft.FSharp.Reflection/FSharpReflection.fs b/tests/FSharp.Core.UnitTests/FSharp.Core/Microsoft.FSharp.Reflection/FSharpReflection.fs
index 7e1dec5a2ff..21df908745d 100644
--- a/tests/FSharp.Core.UnitTests/FSharp.Core/Microsoft.FSharp.Reflection/FSharpReflection.fs
+++ b/tests/FSharp.Core.UnitTests/FSharp.Core/Microsoft.FSharp.Reflection/FSharpReflection.fs
@@ -26,30 +26,6 @@ Make sure each method works on:
* Struct versions of the above
*)
-#if FX_RESHAPED_REFLECTION
-module PrimReflectionAdapters =
- open System.Linq
-
- type System.Type with
- member this.Assembly = this.GetTypeInfo().Assembly
- member this.IsGenericType = this.GetTypeInfo().IsGenericType
- member this.IsValueType = this.GetTypeInfo().IsValueType
- member this.IsAssignableFrom(otherTy : Type) = this.GetTypeInfo().IsAssignableFrom(otherTy.GetTypeInfo())
- member this.GetProperty(name) = this.GetRuntimeProperty(name)
- member this.GetProperties() = this.GetRuntimeProperties() |> Array.ofSeq
- member this.GetMethod(name, parameterTypes) = this.GetRuntimeMethod(name, parameterTypes)
- member this.GetCustomAttributes(attrTy : Type, inherits : bool) : obj[] =
- unbox (box (CustomAttributeExtensions.GetCustomAttributes(this.GetTypeInfo(), attrTy, inherits).ToArray()))
-
- type System.Reflection.MemberInfo with
- member this.ReflectedType = this.DeclaringType
-
- type System.Reflection.Assembly with
- member this.GetTypes() = this.DefinedTypes |> Seq.map (fun ti -> ti.AsType()) |> Array.ofSeq
-
-open PrimReflectionAdapters
-#endif
-
module IsModule =
type IsModuleType () =
member __.M = 1
@@ -1056,22 +1032,14 @@ type FSharpTypeTests() =
// Regression for 5588, Reflection: unit is still treated as a record type, but only if you pass BindingFlags.NonPublic
[]
- member __.``IsRecord.Regression5588``() =
-
+ member __.``IsRecord.Regression5588``() =
// negative
Assert.IsFalse(FSharpType.IsRecord(typeof))
-
-#if FX_RESHAPED_REFLECTION
- Assert.IsFalse( FSharpType.IsRecord(typeof, true) )
-#else
Assert.IsFalse( FSharpType.IsRecord(typeof, System.Reflection.BindingFlags.NonPublic) )
-#endif
()
-
[]
- member __.IsTuple() =
-
+ member __.IsTuple() =
// positive
Assert.IsTrue(FSharpType.IsTuple(typeof>))
Assert.IsTrue(FSharpType.IsTuple(typeof>))
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core/RecordTypes.fs b/tests/FSharp.Core.UnitTests/FSharp.Core/RecordTypes.fs
index 112c3509b1b..e131a9274dd 100644
--- a/tests/FSharp.Core.UnitTests/FSharp.Core/RecordTypes.fs
+++ b/tests/FSharp.Core.UnitTests/FSharp.Core/RecordTypes.fs
@@ -11,16 +11,6 @@ open NUnit.Framework
open FsCheck
open FsCheck.PropOperators
-#if FX_RESHAPED_REFLECTION
-open FSharp.Reflection.FSharpReflectionExtensions
-
-[]
-module PrimReflectionAdapters =
-
- type System.Type with
- member this.IsValueType = this.GetTypeInfo().IsValueType
-#endif
-
type Record =
{ A: int
B: int
diff --git a/tests/FSharp.Core.UnitTests/LibraryTestFx.fs b/tests/FSharp.Core.UnitTests/LibraryTestFx.fs
index 03adf3fff51..77a9b2a3e60 100644
--- a/tests/FSharp.Core.UnitTests/LibraryTestFx.fs
+++ b/tests/FSharp.Core.UnitTests/LibraryTestFx.fs
@@ -54,60 +54,29 @@ let CheckThrowsFormatException f = CheckThrowsExn
let VerifySeqsEqual (seq1 : seq<'T>) (seq2 : seq<'T>) =
CollectionAssert.AreEqual(seq1, seq2)
-let sleep(n : int32) =
-#if FX_NO_THREAD
- async { do! Async.Sleep(n) } |> Async.RunSynchronously
-#else
+let sleep(n : int32) =
System.Threading.Thread.Sleep(n)
-#endif
-#if VERIFY_SURFACEAREA
module SurfaceArea =
open System.Reflection
open System
open System.Text.RegularExpressions
-
+
// gets string form of public surface area for the currently-loaded FSharp.Core
let private getActual () =
-
// get current FSharp.Core
let asm =
-#if FX_RESHAPED_REFLECTION
- typeof.GetTypeInfo().Assembly
-#else
typeof.Assembly
-#endif
-
+
// public types only
let types =
-#if FX_RESHAPED_REFLECTION
- asm.ExportedTypes |> Seq.filter (fun ty -> let ti = ty.GetTypeInfo() in ti.IsPublic || ti.IsNestedPublic) |> Array.ofSeq
-#else
asm.GetExportedTypes()
-#endif
// extract canonical string form for every public member of every type
let getTypeMemberStrings (t : Type) =
// for System.Runtime-based profiles, need to do lots of manual work
-#if FX_RESHAPED_REFLECTION
- let getMembers (t : Type) =
- let ti = t.GetTypeInfo()
- let cast (info : #MemberInfo) = (t, info :> MemberInfo)
- seq {
- yield! t.GetRuntimeEvents() |> Seq.filter (fun m -> m.AddMethod.IsPublic) |> Seq.map cast
- yield! t.GetRuntimeProperties() |> Seq.filter (fun m -> m.GetMethod.IsPublic) |> Seq.map cast
- yield! t.GetRuntimeMethods() |> Seq.filter (fun m -> m.IsPublic) |> Seq.map cast
- yield! t.GetRuntimeFields() |> Seq.filter (fun m -> m.IsPublic) |> Seq.map cast
- yield! ti.DeclaredConstructors |> Seq.filter (fun m -> m.IsPublic) |> Seq.map cast
- yield! ti.DeclaredNestedTypes |> Seq.filter (fun ty -> ty.IsNestedPublic) |> Seq.map cast
- } |> Array.ofSeq
-
- getMembers t
- |> Array.map (fun (ty, m) -> sprintf "%s: %s" (ty.ToString()) (m.ToString()))
-#else
t.GetMembers()
|> Array.map (fun v -> sprintf "%s: %s" (v.ReflectedType.ToString()) (v.ToString()))
-#endif
let actual =
types |> Array.collect getTypeMemberStrings
@@ -173,4 +142,4 @@ module SurfaceArea =
sb.ToString ()
Assert.Fail msg
-#endif
\ No newline at end of file
+ ()
diff --git a/tests/FSharp.Core.UnitTests/SurfaceArea.coreclr.fs b/tests/FSharp.Core.UnitTests/SurfaceArea.coreclr.fs
index 9de6db290bd..bc647b34ae9 100644
--- a/tests/FSharp.Core.UnitTests/SurfaceArea.coreclr.fs
+++ b/tests/FSharp.Core.UnitTests/SurfaceArea.coreclr.fs
@@ -5,7 +5,6 @@ namespace FSharp.Core.UnitTests.Portable.SurfaceArea
open NUnit.Framework
open FSharp.Core.UnitTests.LibraryTestFx
-[]
type SurfaceAreaTest() =
[]
member this.VerifyArea() =
@@ -91,6 +90,7 @@ Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Collections.FSharpLis
Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Core.FSharpOption`1[System.Int32] TryFindIndexBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Core.FSharpOption`1[System.Int32] TryFindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Core.FSharpOption`1[TResult] TryPick[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpOption`1[TResult]], T[])
+Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryExactlyOne[T](T[])
Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryFindBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryFind[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryHead[T](T[])
@@ -114,7 +114,6 @@ Microsoft.FSharp.Collections.ArrayModule: System.Tuple`3[T1[],T2[],T3[]] Unzip3[
Microsoft.FSharp.Collections.ArrayModule: System.Type GetType()
Microsoft.FSharp.Collections.ArrayModule: T Average[T](T[])
Microsoft.FSharp.Collections.ArrayModule: T ExactlyOne[T](T[])
-Microsoft.FSharp.Collections.ArrayModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryExactlyOne[T](T[])
Microsoft.FSharp.Collections.ArrayModule: T FindBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
Microsoft.FSharp.Collections.ArrayModule: T Find[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
Microsoft.FSharp.Collections.ArrayModule: T Get[T](T[], Int32)
@@ -345,6 +344,7 @@ Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Core.FSharpOption`1[System.Int32] TryFindIndexBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Core.FSharpOption`1[System.Int32] TryFindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Core.FSharpOption`1[TResult] TryPick[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpOption`1[TResult]], Microsoft.FSharp.Collections.FSharpList`1[T])
+Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryExactlyOne[T](Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryFindBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryFind[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryHead[T](Microsoft.FSharp.Collections.FSharpList`1[T])
@@ -361,7 +361,6 @@ Microsoft.FSharp.Collections.ListModule: System.Tuple`3[Microsoft.FSharp.Collect
Microsoft.FSharp.Collections.ListModule: System.Type GetType()
Microsoft.FSharp.Collections.ListModule: T Average[T](Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: T ExactlyOne[T](Microsoft.FSharp.Collections.FSharpList`1[T])
-Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryExactlyOne[T](Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: T FindBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: T Find[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
Microsoft.FSharp.Collections.ListModule: T Get[T](Microsoft.FSharp.Collections.FSharpList`1[T], Int32)
@@ -433,6 +432,7 @@ Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Collections.FSharpList`
Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Core.FSharpOption`1[System.Int32] TryFindIndexBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Core.FSharpOption`1[System.Int32] TryFindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Core.FSharpOption`1[TResult] TryPick[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpOption`1[TResult]], System.Collections.Generic.IEnumerable`1[T])
+Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryExactlyOne[T](System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryFindBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryFind[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryHead[T](System.Collections.Generic.IEnumerable`1[T])
@@ -496,7 +496,6 @@ Microsoft.FSharp.Collections.SeqModule: System.Tuple`2[System.Collections.Generi
Microsoft.FSharp.Collections.SeqModule: System.Type GetType()
Microsoft.FSharp.Collections.SeqModule: T Average[T](System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: T ExactlyOne[T](System.Collections.Generic.IEnumerable`1[T])
-Microsoft.FSharp.Collections.SeqModule: Microsoft.FSharp.Core.FSharpOption`1[T] TryExactlyOne[T](System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: T FindBack[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: T Find[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], System.Collections.Generic.IEnumerable`1[T])
Microsoft.FSharp.Collections.SeqModule: T Get[T](Int32, System.Collections.Generic.IEnumerable`1[T])
@@ -755,6 +754,9 @@ Microsoft.FSharp.Control.ObservableModule: Void Add[T](Microsoft.FSharp.Core.FSh
Microsoft.FSharp.Control.WebExtensions: Boolean Equals(System.Object)
Microsoft.FSharp.Control.WebExtensions: Int32 GetHashCode()
Microsoft.FSharp.Control.WebExtensions: Microsoft.FSharp.Control.FSharpAsync`1[System.Net.WebResponse] AsyncGetResponse(System.Net.WebRequest)
+Microsoft.FSharp.Control.WebExtensions: Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.Unit] AsyncDownloadFile(System.Net.WebClient, System.Uri, System.String)
+Microsoft.FSharp.Control.WebExtensions: Microsoft.FSharp.Control.FSharpAsync`1[System.Byte[]] AsyncDownloadData(System.Net.WebClient, System.Uri)
+Microsoft.FSharp.Control.WebExtensions: Microsoft.FSharp.Control.FSharpAsync`1[System.String] AsyncDownloadString(System.Net.WebClient, System.Uri)
Microsoft.FSharp.Control.WebExtensions: System.String ToString()
Microsoft.FSharp.Control.WebExtensions: System.Type GetType()
Microsoft.FSharp.Core.AbstractClassAttribute: Boolean Equals(System.Object)
@@ -2136,6 +2138,10 @@ Microsoft.FSharp.Core.FSharpChoice`7[T1,T2,T3,T4,T5,T6,T7]: System.String ToStri
Microsoft.FSharp.Core.FSharpChoice`7[T1,T2,T3,T4,T5,T6,T7]: System.Type GetType()
Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: Boolean Equals(System.Object)
Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: Int32 GetHashCode()
+Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: Microsoft.FSharp.Core.FSharpFunc`2[T,TResult] FromConverter(System.Converter`2[T,TResult])
+Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: Microsoft.FSharp.Core.FSharpFunc`2[T,TResult] op_Implicit(System.Converter`2[T,TResult])
+Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: System.Converter`2[T,TResult] ToConverter(Microsoft.FSharp.Core.FSharpFunc`2[T,TResult])
+Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: System.Converter`2[T,TResult] op_Implicit(Microsoft.FSharp.Core.FSharpFunc`2[T,TResult])
Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: System.String ToString()
Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: System.Type GetType()
Microsoft.FSharp.Core.FSharpFunc`2[T,TResult]: TResult Invoke(T)
@@ -2250,8 +2256,12 @@ Microsoft.FSharp.Core.FSharpValueOption`1+Tags[T]: System.Type GetType()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean Equals(Microsoft.FSharp.Core.FSharpValueOption`1[T])
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean Equals(System.Object)
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean Equals(System.Object, System.Collections.IEqualityComparer)
+Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean IsNone
+Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean IsSome
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean IsValueNone
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean IsValueSome
+Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean get_IsNone()
+Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean get_IsSome()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean get_IsValueNone()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean get_IsValueSome()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Int32 CompareTo(Microsoft.FSharp.Core.FSharpValueOption`1[T])
@@ -2263,7 +2273,10 @@ Microsoft.FSharp.Core.FSharpValueOption`1[T]: Int32 Tag
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Int32 get_Tag()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1+Tags[T]
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] NewValueSome(T)
+Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] None
+Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] Some(T)
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] ValueNone
+Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] get_None()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] get_ValueNone()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: System.String ToString()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: System.Type GetType()
@@ -2271,19 +2284,6 @@ Microsoft.FSharp.Core.FSharpValueOption`1[T]: T Item
Microsoft.FSharp.Core.FSharpValueOption`1[T]: T Value
Microsoft.FSharp.Core.FSharpValueOption`1[T]: T get_Item()
Microsoft.FSharp.Core.FSharpValueOption`1[T]: T get_Value()
-Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean IsNone
-Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean IsSome
-Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean get_IsNone()
-Microsoft.FSharp.Core.FSharpValueOption`1[T]: Boolean get_IsSome()
-Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] None
-Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] Some(T)
-Microsoft.FSharp.Core.FSharpValueOption`1[T]: Microsoft.FSharp.Core.FSharpValueOption`1[T] get_None()
-Microsoft.FSharp.Core.FSharpTypeFunc: Boolean Equals(System.Object)
-Microsoft.FSharp.Core.FSharpTypeFunc: Int32 GetHashCode()
-Microsoft.FSharp.Core.FSharpTypeFunc: System.Object Specialize[T]()
-Microsoft.FSharp.Core.FSharpTypeFunc: System.String ToString()
-Microsoft.FSharp.Core.FSharpTypeFunc: System.Type GetType()
-Microsoft.FSharp.Core.FSharpTypeFunc: Void .ctor()
Microsoft.FSharp.Core.FuncConvert: Boolean Equals(System.Object)
Microsoft.FSharp.Core.FuncConvert: Int32 GetHashCode()
Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,Microsoft.FSharp.Core.Unit] FromAction(System.Action)
@@ -2291,6 +2291,7 @@ Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.
Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.Unit] FromAction[T](System.Action`1[T])
Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.Unit] ToFSharpFunc[T](System.Action`1[T])
Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[T,TResult] FromFunc[T,TResult](System.Func`2[T,TResult])
+Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[T,TResult] ToFSharpFunc[T,TResult](System.Converter`2[T,TResult])
Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[T1,Microsoft.FSharp.Core.FSharpFunc`2[T2,Microsoft.FSharp.Core.FSharpFunc`2[T3,Microsoft.FSharp.Core.FSharpFunc`2[T4,Microsoft.FSharp.Core.FSharpFunc`2[T5,Microsoft.FSharp.Core.Unit]]]]] FromAction[T1,T2,T3,T4,T5](System.Action`5[T1,T2,T3,T4,T5])
Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[T1,Microsoft.FSharp.Core.FSharpFunc`2[T2,Microsoft.FSharp.Core.FSharpFunc`2[T3,Microsoft.FSharp.Core.FSharpFunc`2[T4,Microsoft.FSharp.Core.FSharpFunc`2[T5,TResult]]]]] FromFunc[T1,T2,T3,T4,T5,TResult](System.Func`6[T1,T2,T3,T4,T5,TResult])
Microsoft.FSharp.Core.FuncConvert: Microsoft.FSharp.Core.FSharpFunc`2[T1,Microsoft.FSharp.Core.FSharpFunc`2[T2,Microsoft.FSharp.Core.FSharpFunc`2[T3,Microsoft.FSharp.Core.FSharpFunc`2[T4,Microsoft.FSharp.Core.FSharpFunc`2[T5,TResult]]]]] FuncFromTupled[T1,T2,T3,T4,T5,TResult](Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`5[T1,T2,T3,T4,T5],TResult])
@@ -2874,36 +2875,6 @@ Microsoft.FSharp.Core.OptionModule: TState FoldBack[T,TState](Microsoft.FSharp.C
Microsoft.FSharp.Core.OptionModule: TState Fold[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[TState,Microsoft.FSharp.Core.FSharpFunc`2[T,TState]], TState, Microsoft.FSharp.Core.FSharpOption`1[T])
Microsoft.FSharp.Core.OptionModule: T[] ToArray[T](Microsoft.FSharp.Core.FSharpOption`1[T])
Microsoft.FSharp.Core.OptionModule: Void Iterate[T](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.Unit], Microsoft.FSharp.Core.FSharpOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Boolean Contains[T](T, Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Boolean Equals(System.Object)
-Microsoft.FSharp.Core.ValueOption: Boolean Exists[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Boolean ForAll[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Boolean IsNone[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Boolean IsSome[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Int32 Count[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Int32 GetHashCode()
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Collections.FSharpList`1[T] ToList[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[TResult] Bind[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpValueOption`1[TResult]], Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[TResult] Map2[T1,T2,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T1,Microsoft.FSharp.Core.FSharpFunc`2[T2,TResult]], Microsoft.FSharp.Core.FSharpValueOption`1[T1], Microsoft.FSharp.Core.FSharpValueOption`1[T2])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[TResult] Map3[T1,T2,T3,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T1,Microsoft.FSharp.Core.FSharpFunc`2[T2,Microsoft.FSharp.Core.FSharpFunc`2[T3,TResult]]], Microsoft.FSharp.Core.FSharpValueOption`1[T1], Microsoft.FSharp.Core.FSharpValueOption`1[T2], Microsoft.FSharp.Core.FSharpValueOption`1[T3])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[TResult] Map[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,TResult], Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] Filter[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] Flatten[T](Microsoft.FSharp.Core.FSharpValueOption`1[Microsoft.FSharp.Core.FSharpValueOption`1[T]])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] OfNullable[T](System.Nullable`1[T])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] OfObj[T](T)
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] OrElseWith[T](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,Microsoft.FSharp.Core.FSharpValueOption`1[T]], Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] OrElse[T](Microsoft.FSharp.Core.FSharpValueOption`1[T], Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: System.Nullable`1[T] ToNullable[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: System.String ToString()
-Microsoft.FSharp.Core.ValueOption: System.Type GetType()
-Microsoft.FSharp.Core.ValueOption: T DefaultValue[T](T, Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: T DefaultWith[T](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,T], Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: T GetValue[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: T ToObj[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: TState FoldBack[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpFunc`2[TState,TState]], Microsoft.FSharp.Core.FSharpValueOption`1[T], TState)
-Microsoft.FSharp.Core.ValueOption: TState Fold[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[TState,Microsoft.FSharp.Core.FSharpFunc`2[T,TState]], TState, Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: T[] ToArray[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
-Microsoft.FSharp.Core.ValueOption: Void Iterate[T](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.Unit], Microsoft.FSharp.Core.FSharpValueOption`1[T])
Microsoft.FSharp.Core.OptionalArgumentAttribute: Boolean Equals(System.Object)
Microsoft.FSharp.Core.OptionalArgumentAttribute: Boolean IsDefaultAttribute()
Microsoft.FSharp.Core.OptionalArgumentAttribute: Boolean Match(System.Object)
@@ -3101,6 +3072,36 @@ Microsoft.FSharp.Core.UnverifiableAttribute: System.Object get_TypeId()
Microsoft.FSharp.Core.UnverifiableAttribute: System.String ToString()
Microsoft.FSharp.Core.UnverifiableAttribute: System.Type GetType()
Microsoft.FSharp.Core.UnverifiableAttribute: Void .ctor()
+Microsoft.FSharp.Core.ValueOption: Boolean Contains[T](T, Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Boolean Equals(System.Object)
+Microsoft.FSharp.Core.ValueOption: Boolean Exists[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Boolean ForAll[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Boolean IsNone[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Boolean IsSome[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Int32 Count[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Int32 GetHashCode()
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Collections.FSharpList`1[T] ToList[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[TResult] Bind[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpValueOption`1[TResult]], Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[TResult] Map2[T1,T2,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T1,Microsoft.FSharp.Core.FSharpFunc`2[T2,TResult]], Microsoft.FSharp.Core.FSharpValueOption`1[T1], Microsoft.FSharp.Core.FSharpValueOption`1[T2])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[TResult] Map3[T1,T2,T3,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T1,Microsoft.FSharp.Core.FSharpFunc`2[T2,Microsoft.FSharp.Core.FSharpFunc`2[T3,TResult]]], Microsoft.FSharp.Core.FSharpValueOption`1[T1], Microsoft.FSharp.Core.FSharpValueOption`1[T2], Microsoft.FSharp.Core.FSharpValueOption`1[T3])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[TResult] Map[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,TResult], Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] Filter[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] Flatten[T](Microsoft.FSharp.Core.FSharpValueOption`1[Microsoft.FSharp.Core.FSharpValueOption`1[T]])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] OfNullable[T](System.Nullable`1[T])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] OfObj[T](T)
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] OrElseWith[T](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,Microsoft.FSharp.Core.FSharpValueOption`1[T]], Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Microsoft.FSharp.Core.FSharpValueOption`1[T] OrElse[T](Microsoft.FSharp.Core.FSharpValueOption`1[T], Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: System.Nullable`1[T] ToNullable[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: System.String ToString()
+Microsoft.FSharp.Core.ValueOption: System.Type GetType()
+Microsoft.FSharp.Core.ValueOption: T DefaultValue[T](T, Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: T DefaultWith[T](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,T], Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: T GetValue[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: T ToObj[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: TState FoldBack[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpFunc`2[TState,TState]], Microsoft.FSharp.Core.FSharpValueOption`1[T], TState)
+Microsoft.FSharp.Core.ValueOption: TState Fold[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[TState,Microsoft.FSharp.Core.FSharpFunc`2[T,TState]], TState, Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: T[] ToArray[T](Microsoft.FSharp.Core.FSharpValueOption`1[T])
+Microsoft.FSharp.Core.ValueOption: Void Iterate[T](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.Unit], Microsoft.FSharp.Core.FSharpValueOption`1[T])
Microsoft.FSharp.Core.VolatileFieldAttribute: Boolean Equals(System.Object)
Microsoft.FSharp.Core.VolatileFieldAttribute: Boolean IsDefaultAttribute()
Microsoft.FSharp.Core.VolatileFieldAttribute: Boolean Match(System.Object)
diff --git a/tests/FSharp.Core.UnitTests/SurfaceArea.net40.fs b/tests/FSharp.Core.UnitTests/SurfaceArea.net40.fs
index 16035e67c02..54fd479eb23 100644
--- a/tests/FSharp.Core.UnitTests/SurfaceArea.net40.fs
+++ b/tests/FSharp.Core.UnitTests/SurfaceArea.net40.fs
@@ -5,7 +5,6 @@ namespace FSharp.Core.UnitTests.SurfaceArea
open NUnit.Framework
open FSharp.Core.UnitTests.LibraryTestFx
-[]
type SurfaceAreaTest() =
[]
member this.VerifyArea() =
@@ -3666,4 +3665,4 @@ Microsoft.FSharp.Reflection.UnionCaseInfo: System.Type get_DeclaringType()
// disabled because of slight order and GetMember discrepencies
#else
SurfaceArea.verify expected "net40" (System.IO.Path.Combine(__SOURCE_DIRECTORY__,__SOURCE_FILE__))
-#endif
+#endif
\ No newline at end of file
diff --git a/tests/fsharp/Compiler/CompilerAssert.fs b/tests/fsharp/Compiler/CompilerAssert.fs
index 37946c40872..46f202db266 100644
--- a/tests/fsharp/Compiler/CompilerAssert.fs
+++ b/tests/fsharp/Compiler/CompilerAssert.fs
@@ -3,9 +3,10 @@
namespace FSharp.Compiler.UnitTests
open System
+open System.Diagnostics
open System.IO
open System.Text
-open System.Diagnostics
+
open FSharp.Compiler.Text
open FSharp.Compiler.SourceCodeServices
open FSharp.Compiler.Interactive.Shell
@@ -16,7 +17,6 @@ open NUnit.Framework
module CompilerAssert =
let checker = FSharpChecker.Create()
-
let private config = TestFramework.initializeSuite ()
let private defaultProjectOptions =
@@ -34,9 +34,10 @@ module CompilerAssert =
|> Path.GetDirectoryName
|> Directory.EnumerateFiles
|> Seq.toArray
- |> Array.filter (fun x -> x.ToLowerInvariant().Contains("system."))
+ |> Array.filter (fun x -> x.ToLowerInvariant().Contains("system.") || x.ToLowerInvariant().EndsWith("netstandard.dll"))
|> Array.map (fun x -> sprintf "-r:%s" x)
Array.append [|"--targetprofile:netcore"; "--noframework"|] assemblies
+
#endif
ReferencedProjects = [||]
IsIncompleteTypeCheckEnvironment = false
@@ -47,7 +48,7 @@ module CompilerAssert =
ExtraProjectInfo = None
Stamp = None
}
-
+
let lockObj = obj ()
let Pass (source: string) =
@@ -116,4 +117,3 @@ module CompilerAssert =
||> Seq.iter2 (fun expectedErrorMessage errorMessage ->
Assert.AreEqual(expectedErrorMessage, errorMessage)
)
-
\ No newline at end of file
diff --git a/tests/fsharp/core/quotes/test.fsx b/tests/fsharp/core/quotes/test.fsx
index 289988569de..8be5e210971 100644
--- a/tests/fsharp/core/quotes/test.fsx
+++ b/tests/fsharp/core/quotes/test.fsx
@@ -2007,7 +2007,6 @@ module TestQuotationOfCOnstructors =
| _ -> false)
-#if !FX_RESHAPED_REFLECTION
// Also test getting the reflected definition for private members implied by "let f() = ..." bindings
let fMethod = (typeof.GetMethod("f", Reflection.BindingFlags.Instance ||| Reflection.BindingFlags.Public ||| Reflection.BindingFlags.NonPublic))
@@ -2020,9 +2019,7 @@ module TestQuotationOfCOnstructors =
-> unitVar.Type = typeof
| _ -> false)
-
Expr.TryGetReflectedDefinition fMethod |> printfn "%A"
-#endif
test "vkjnkvrw0"
(match Expr.TryGetReflectedDefinition (typeof.GetConstructors().[0]) with
@@ -2312,29 +2309,17 @@ module ReflectedDefinitionOnTypesWithImplicitCodeGen =
// This type has an implicit IComparable implementation, it is not accessible as a reflected definition
type U = A of int | B of string | C of System.DateTime
-#if FX_RESHAPED_REFLECTION
- for m in typeof.GetMethods() do
-#else
for m in typeof.GetMethods(System.Reflection.BindingFlags.DeclaredOnly) do
-#endif
check "celnwer33" (Quotations.Expr.TryGetReflectedDefinition(m).IsNone) true
// This type has some implicit codegen
exception X of string * int
-#if FX_RESHAPED_REFLECTION
- for m in typeof.GetMethods() do
-#else
for m in typeof.GetMethods(System.Reflection.BindingFlags.DeclaredOnly) do
-#endif
check "celnwer34" (Quotations.Expr.TryGetReflectedDefinition(m).IsNone) true
// This type has an implicit IComparable implementation, it is not accessible as a reflected definition
[] type SR = { x:int; y:string; z:System.DateTime }
-#if FX_RESHAPED_REFLECTION
- for m in typeof.GetMethods() do
-#else
for m in typeof.GetMethods(System.Reflection.BindingFlags.DeclaredOnly) do
-#endif
check "celnwer35" (Quotations.Expr.TryGetReflectedDefinition(m).IsNone) true
#if !NETCOREAPP
@@ -3175,13 +3160,10 @@ module TestMatchBang =
| expr -> Error "Delay is incorrect")
(Ok ())
- testSimpleMatchBang()
-
+ testSimpleMatchBang()
-#if !FX_RESHAPED_REFLECTION
module TestAssemblyAttributes =
let attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(false)
-#endif
#if TESTS_AS_APP
let RUN() = !failures
diff --git a/tests/fsharp/core/samename/tempet.fsproj b/tests/fsharp/core/samename/tempet.fsproj
index d6ac10eab9b..20f63eb9cc1 100644
--- a/tests/fsharp/core/samename/tempet.fsproj
+++ b/tests/fsharp/core/samename/tempet.fsproj
@@ -1,7 +1,7 @@
- netstandard1.6
+ netstandard2.0
diff --git a/tests/fsharp/core/subtype/test.fsx b/tests/fsharp/core/subtype/test.fsx
index 381e5b9a658..9751d03e6e3 100644
--- a/tests/fsharp/core/subtype/test.fsx
+++ b/tests/fsharp/core/subtype/test.fsx
@@ -1386,12 +1386,10 @@ module CoercivePipingTest =
check "clwcweki" (f8 3) (box 3)
check "clwcweki" (f9 3) (box 3)
-#if !FX_RESHAPED_REFLECTION
// this was the actual repro
let f (info: System.Reflection.MethodInfo) =
System.Attribute.GetCustomAttribute(info, typeof)
:?> ReflectedDefinitionAttribute
-#endif
module Test_Dev10_Bug_917383 =
@@ -1728,7 +1726,6 @@ module InliningOnSubTypes1 =
do check "clkewlijwlkw" (f()) (13, 17)
-#if !FX_RESHAPED_REFLECTION
module StructUnionSingleCase =
[]
type S = S
@@ -1756,7 +1753,6 @@ module StructUnionSingleCase =
do check "wekew0ewek5" (typeof.IsValueType) true
do check "wekew0ewek5b" (typeof.BaseType) typeof
-#endif
// See https://github.com/Microsoft/visualfsharp/issues/238
module GenericPropertyConstraintSolvedByRecord =
diff --git a/tests/fsharp/single-test.fs b/tests/fsharp/single-test.fs
index 26b257d9449..d3dc0f0c83e 100644
--- a/tests/fsharp/single-test.fs
+++ b/tests/fsharp/single-test.fs
@@ -106,7 +106,7 @@ let generateProjectArtifacts (pc:ProjectConfiguration) outputType (targetFramewo
"FSharp.Core"
let targetCore =
if targetFramework.StartsWith("netstandard", StringComparison.InvariantCultureIgnoreCase) || targetFramework.StartsWith("netcoreapp", StringComparison.InvariantCultureIgnoreCase) then
- "netstandard1.6"
+ "netstandard2.0"
else
"net45"
(Path.GetFullPath(__SOURCE_DIRECTORY__) + "/../../artifacts/bin/" + compiler + "/" + configuration + "/" + targetCore + "/FSharp.Core.dll")
@@ -150,7 +150,6 @@ let generateProjectArtifacts (pc:ProjectConfiguration) outputType (targetFramewo
portable
$(OPTIMIZE)
false
- FX_RESHAPED_REFLECTION
NETCOREAPP
false
$(RestoreFromArtifactsPath)
diff --git a/tests/fsharp/test-framework.fs b/tests/fsharp/test-framework.fs
index 6804b829f12..1e3aa9b37a0 100644
--- a/tests/fsharp/test-framework.fs
+++ b/tests/fsharp/test-framework.fs
@@ -166,7 +166,7 @@ let config configurationName envVars =
#else
let fscArchitecture = "netcoreapp2.1"
let fsiArchitecture = "netcoreapp2.1"
- let fsharpCoreArchitecture = "netstandard1.6"
+ let fsharpCoreArchitecture = "netstandard2.0"
let fsharpBuildArchitecture = "netcoreapp2.1"
let fsharpCompilerInteractiveSettingsArchitecture = "netstandard2.0"
#endif
diff --git a/tests/fsharp/tests.fs b/tests/fsharp/tests.fs
index 96c7be28364..e302a743771 100644
--- a/tests/fsharp/tests.fs
+++ b/tests/fsharp/tests.fs
@@ -2090,10 +2090,8 @@ module TypecheckTests =
let cfg = testConfig "typecheck/full-rank-arrays"
SingleTest.singleTestBuildAndRunWithCopyDlls cfg "full-rank-arrays.dll" FSC_BASIC
-#if !FX_NO_CONVERTER
[]
let misc () = singleTestBuildAndRun "typecheck/misc" FSC_BASIC
-#endif
#if !FSHARP_SUITE_DRIVES_CORECLR_TESTS
diff --git a/tests/fsharpqa/Source/Misc/AsyncOperations.fs b/tests/fsharpqa/Source/Misc/AsyncOperations.fs
index 4b53b0ccff7..2bc7738de70 100644
--- a/tests/fsharpqa/Source/Misc/AsyncOperations.fs
+++ b/tests/fsharpqa/Source/Misc/AsyncOperations.fs
@@ -127,8 +127,7 @@ namespace Microsoft.FSharp.Control
type System.Net.WebRequest with
member req.AsyncGetResponse() = callFSharpCoreAsyncGetResponse req // this calls the FSharp.Core method
member req.GetResponseAsync() = callFSharpCoreAsyncGetResponse req // this calls the FSharp.Core method
-
-#if !FX_NO_WEB_CLIENT
+
[]
module WebClientExtensions =
open System.Net
@@ -138,5 +137,4 @@ namespace Microsoft.FSharp.Control
type WebClient with
member this.AsyncDownloadString address = callFSharpCoreAsyncDownloadString this address
-#endif
diff --git a/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard1.6/Sample_NETCoreSDK_FSharp_Library_netstandard1.6.fsproj b/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard1.6/Sample_NETCoreSDK_FSharp_Library_netstandard1.6.fsproj
index abac283cf0c..a237159916f 100644
--- a/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard1.6/Sample_NETCoreSDK_FSharp_Library_netstandard1.6.fsproj
+++ b/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard1.6/Sample_NETCoreSDK_FSharp_Library_netstandard1.6.fsproj
@@ -1,6 +1,6 @@
- netstandard1.6
+ netstandard2.0
diff --git a/tests/service/Common.fs b/tests/service/Common.fs
index 847447db771..6920e682afe 100644
--- a/tests/service/Common.fs
+++ b/tests/service/Common.fs
@@ -6,10 +6,6 @@ open System.Collections.Generic
open FSharp.Compiler
open FSharp.Compiler.SourceCodeServices
-#if FX_RESHAPED_REFLECTION
-open ReflectionAdapters
-#endif
-
#if NETCOREAPP2_0
let readRefs (folder : string) (projectFile: string) =
let runProcess (workingDir: string) (exePath: string) (args: string) =
@@ -74,11 +70,7 @@ let sysLib nm =
programFilesx86Folder + @"\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\" + nm + ".dll"
else
#endif
-#if FX_NO_RUNTIMEENVIRONMENT
let sysDir = System.AppContext.BaseDirectory
-#else
- let sysDir = System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()
-#endif
let (++) a b = System.IO.Path.Combine(a,b)
sysDir ++ nm + ".dll"
diff --git a/tests/service/FscTests.fs b/tests/service/FscTests.fs
index 9bedfd38b1b..b7ff870675e 100644
--- a/tests/service/FscTests.fs
+++ b/tests/service/FscTests.fs
@@ -20,10 +20,6 @@ open FSharp.Compiler.Service.Tests.Common
open NUnit.Framework
-#if FX_RESHAPED_REFLECTION
-open ReflectionAdapters
-#endif
-
exception
VerificationException of (*assembly:*)string * (*errorCode:*)int * (*output:*)string
with override e.Message = sprintf "Verification of '%s' failed with code %d, message <<<%s>>>" e.Data0 e.Data1 e.Data2
diff --git a/tests/service/ReshapedReflection.fs b/tests/service/ReshapedReflection.fs
deleted file mode 100644
index 3b1ba07ce81..00000000000
--- a/tests/service/ReshapedReflection.fs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace FSharp.Compiler.Service.Tests
-
-#if FX_RESHAPED_REFLECTION
-module internal ReflectionAdapters =
- open System.Reflection
-
- type System.Type with
- member this.Assembly = this.GetTypeInfo().Assembly
-#endif
diff --git a/tests/service/data/samename/tempet.fsproj b/tests/service/data/samename/tempet.fsproj
index 682a3ec1a30..03da397c8db 100644
--- a/tests/service/data/samename/tempet.fsproj
+++ b/tests/service/data/samename/tempet.fsproj
@@ -1,6 +1,6 @@
- netstandard1.6
+ netstandard2.0
diff --git a/vsintegration/Utils/LanguageServiceProfiling/Options.fs b/vsintegration/Utils/LanguageServiceProfiling/Options.fs
index 07d3b5804ee..1357e0da45a 100644
--- a/vsintegration/Utils/LanguageServiceProfiling/Options.fs
+++ b/vsintegration/Utils/LanguageServiceProfiling/Options.fs
@@ -29,7 +29,6 @@ let FCS (repositoryDir: string) : Options =
@"src\fsharp\FSharp.Compiler.Service\obj\Release\FSIstrings.fs"
@"src\assemblyinfo\assemblyinfo.FSharp.Compiler.Private.dll.fs"
@"src\assemblyinfo\assemblyinfo.shared.fs"
- @"src\utils\reshapedreflection.fs"
@"src\utils\sformat.fsi"
@"src\utils\sformat.fs"
@"src\fsharp\sr.fsi"
@@ -205,7 +204,7 @@ let FCS (repositoryDir: string) : Options =
[|@"-o:obj\Release\FSharp.Compiler.Private.dll"; "-g"; "--noframework";
@"--baseaddress:0x06800000"; "--define:DEBUG";
@"--define:CROSS_PLATFORM_COMPILER";
- @"--define:FX_ATLEAST_40"; "--define:BE_SECURITY_TRANSPARENT";
+ @"--define:FX_ATLEAST_40";
@"--define:COMPILER";
@"--define:ENABLE_MONO_SUPPORT"; "--define:FX_MSBUILDRESOLVER_RUNTIMELIKE";
@"--define:FX_LCIDFROMCODEPAGE"; "--define:FX_RESX_RESOURCE_READER";