diff --git a/src/fsharp/CheckDeclarations.fs b/src/fsharp/CheckDeclarations.fs
index 28ca2c85c0c..14c0aff2831 100644
--- a/src/fsharp/CheckDeclarations.fs
+++ b/src/fsharp/CheckDeclarations.fs
@@ -483,9 +483,9 @@ module TcRecdUnionAndEnumDeclarations =
| Some fieldId, Parent tcref ->
let item = Item.UnionCaseField (UnionCaseInfo (thisTyInst, UnionCaseRef (tcref, id.idText)), i)
CallNameResolutionSink cenv.tcSink (fieldId.idRange, env.NameEnv, item, emptyTyparInst, ItemOccurence.Binding, env.AccessRights)
- | _ -> ()
-
- TcAnonFieldDecl cenv env parent tpenv (mkUnionCaseFieldName nFields i) fld)
+ TcNamedFieldDecl cenv env parent false tpenv fld
+ | _ ->
+ TcAnonFieldDecl cenv env parent tpenv (mkUnionCaseFieldName nFields i) fld)
ValidateFieldNames(flds, rfields)
rfields, thisTy
@@ -878,12 +878,21 @@ module IncrClassChecking =
not arity.HasNoArgs && not v.IsMutable
+ ///
/// Choose how a binding is represented
- member localRep.ChooseRepresentation (cenv: cenv, env: TcEnv, isStatic, isCtorArg,
- ctorInfo: IncrClassCtorLhs,
- /// The vars forced to be fields due to static member bindings, instance initialization expressions or instance member bindings
- staticForcedFieldVars: FreeLocals,
- /// The vars forced to be fields due to instance member bindings
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// The vars forced to be fields due to static member bindings, instance initialization expressions or instance member bindings
+ /// The vars forced to be fields due to instance member bindings
+ ///
+ ///
+ member localRep.ChooseRepresentation (cenv: cenv, env: TcEnv, isStatic, isCtorArg,
+ ctorInfo: IncrClassCtorLhs,
+ staticForcedFieldVars: FreeLocals,
instanceForcedFieldVars: FreeLocals,
takenFieldNames: Set,
bind: Binding) =
@@ -1091,9 +1100,9 @@ module IncrClassChecking =
/// Given localRep saying how locals have been represented, e.g. as fields.
/// Given an expr under a given thisVal context.
//
- /// Fix up the references to the locals, e.g.
- /// v -> this.fieldv
- /// f x -> this.method x
+ // Fix up the references to the locals, e.g.
+ // v -> this.fieldv
+ // f x -> this.method x
member localRep.FixupIncrClassExprPhase2C cenv thisValOpt safeStaticInitInfo (thisTyInst: TypeInst) expr =
// fixup: intercept and expr rewrite
let FixupExprNode rw e =
@@ -1143,21 +1152,27 @@ module IncrClassChecking =
| Phase2CCtorJustAfterSuperInit
| Phase2CCtorJustAfterLastLet
- /// Given a set of 'let' bindings (static or not, recursive or not) that make up a class,
- /// generate their initialization expression(s).
- let MakeCtorForIncrClassConstructionPhase2C
+ ///
+ /// Given a set of 'let' bindings (static or not, recursive or not) that make up a class,
+ /// generate their initialization expression(s).
+ ///
+ ///
+ ///
+ /// The lhs information about the implicit constructor
+ /// The call to the super class constructor
+ /// Should we place a sequence point at the 'inheritedTys call?
+ /// The declarations
+ ///
+ /// Record any unconstrained type parameters generalized for the outer members as "free choices" in the let bindings
+ ///
+ let MakeCtorForIncrClassConstructionPhase2C
(cenv: cenv,
- env: TcEnv,
- /// The lhs information about the implicit constructor
- ctorInfo: IncrClassCtorLhs,
- /// The call to the super class constructor
- inheritsExpr,
- /// Should we place a sequence point at the 'inheritedTys call?
- inheritsIsVisible,
- /// The declarations
+ env: TcEnv,
+ ctorInfo: IncrClassCtorLhs,
+ inheritsExpr,
+ inheritsIsVisible,
decs: IncrClassConstructionBindingsPhase2C list,
- memberBinds: Binding list,
- /// Record any unconstrained type parameters generalized for the outer members as "free choices" in the let bindings
+ memberBinds: Binding list,
generalizedTyparsForRecursiveBlock,
safeStaticInitInfo: SafeInitData) =
@@ -1459,7 +1474,7 @@ module IncrClassChecking =
ctorBody
let cctorBodyOpt =
- /// Omit the .cctor if it's empty
+ // Omit the .cctor if it's empty
match cctorInitActions with
| [] -> None
| _ ->
@@ -3586,7 +3601,7 @@ module EstablishTypeDefinitionCores =
/// Note that for
/// type PairOfInts = int * int
/// then after running this phase and checking for cycles, operations
- // such as 'isRefTupleTy' will return reliable results, e.g. isRefTupleTy on the
+ /// such as 'isRefTupleTy' will return reliable results, e.g. isRefTupleTy on the
/// TAST type for 'PairOfInts' will report 'true'
//
let private TcTyconDefnCore_Phase1C_Phase1E_EstablishAbbreviations (cenv: cenv) envinner inSig tpenv pass (MutRecDefnsPhase1DataForTycon(_, synTyconRepr, _, _, _, _)) (tycon: Tycon) (attrs: Attribs) =
diff --git a/src/fsharp/CheckExpressions.fs b/src/fsharp/CheckExpressions.fs
index d4b8e08d9d6..f966e8e5b60 100644
--- a/src/fsharp/CheckExpressions.fs
+++ b/src/fsharp/CheckExpressions.fs
@@ -1031,8 +1031,8 @@ let noArgOrRetAttribs = ArgAndRetAttribs ([], [])
/// shares the same code paths (e.g. TcLetBinding and TcLetrec) as processing expression bindings (such as "let x = 1 in ...")
/// Member bindings also use this path.
//
-/// However there are differences in how different bindings get processed,
-/// i.e. module bindings get published to the implicitly accumulated module type, but expression 'let' bindings don't.
+// However there are differences in how different bindings get processed,
+// i.e. module bindings get published to the implicitly accumulated module type, but expression 'let' bindings don't.
type DeclKind =
| ModuleOrMemberBinding
@@ -5971,7 +5971,7 @@ and TcExprUndelayed cenv (overallTy: OverallTy) env tpenv (synExpr: SynExpr) =
let e3', tpenv = TcExpr cenv overallTy env tpenv e3
Expr.StaticOptimization (constraints', e2', e3', m), tpenv
- /// e1.longId <- e2
+ // e1.longId <- e2
| SynExpr.DotSet (e1, (LongIdentWithDots(longId, _) as lidwd), e2, mStmt) ->
if lidwd.ThereIsAnExtraDotAtTheEnd then
// just drop rhs on the floor
@@ -5981,11 +5981,11 @@ and TcExprUndelayed cenv (overallTy: OverallTy) env tpenv (synExpr: SynExpr) =
let mExprAndDotLookup = unionRanges e1.Range (rangeOfLid longId)
TcExprThen cenv overallTy env tpenv false e1 [DelayedDotLookup(longId, mExprAndDotLookup); MakeDelayedSet(e2, mStmt)]
- /// e1 <- e2
+ // e1 <- e2
| SynExpr.Set (e1, e2, mStmt) ->
TcExprThen cenv overallTy env tpenv false e1 [MakeDelayedSet(e2, mStmt)]
- /// e1.longId(e2) <- e3, very rarely used named property setters
+ // e1.longId(e2) <- e3, very rarely used named property setters
| SynExpr.DotNamedIndexedPropertySet (e1, (LongIdentWithDots(longId, _) as lidwd), e2, e3, mStmt) ->
if lidwd.ThereIsAnExtraDotAtTheEnd then
// just drop rhs on the floor
diff --git a/src/fsharp/CheckExpressions.fsi b/src/fsharp/CheckExpressions.fsi
index e430ce66fa0..765ecd35c93 100644
--- a/src/fsharp/CheckExpressions.fsi
+++ b/src/fsharp/CheckExpressions.fsi
@@ -46,10 +46,10 @@ val InitialImplicitCtorInfo: unit -> CtorInfo
[]
type UngeneralizableItem
-[]
/// Represents the type environment at a particular scope. Includes the name
/// resolution environment, the ungeneralizable items from earlier in the scope
/// and other information about the scope.
+[]
type TcEnv =
{ /// Name resolution information
eNameResEnv: NameResolutionEnv
diff --git a/src/fsharp/CompilerConfig.fs b/src/fsharp/CompilerConfig.fs
index f93653b1d8c..dae491a9d44 100644
--- a/src/fsharp/CompilerConfig.fs
+++ b/src/fsharp/CompilerConfig.fs
@@ -860,8 +860,8 @@ type TcConfigBuilder =
// TcConfig
//--------------------------------------------------------------------------
-[]
/// This type is immutable and must be kept as such. Do not extract or mutate the underlying data except by cloning it.
+[]
type TcConfig private (data: TcConfigBuilder, validate: bool) =
// Validate the inputs - this helps ensure errors in options are shown in visual studio rather than only when built
diff --git a/src/fsharp/CompilerImports.fsi b/src/fsharp/CompilerImports.fsi
index 4b91bb7c52d..0eeb5e23c29 100644
--- a/src/fsharp/CompilerImports.fsi
+++ b/src/fsharp/CompilerImports.fsi
@@ -117,8 +117,8 @@ type ImportedAssembly =
}
-[]
/// Tables of assembly resolutions
+[]
type TcAssemblyResolutions =
member GetAssemblyResolutions: unit -> AssemblyResolution list
diff --git a/src/fsharp/ConstraintSolver.fs b/src/fsharp/ConstraintSolver.fs
index 34f20beda0c..d178d9b23a2 100644
--- a/src/fsharp/ConstraintSolver.fs
+++ b/src/fsharp/ConstraintSolver.fs
@@ -143,8 +143,8 @@ let FreshenMethInfo m (minfo: MethInfo) =
// Subsumption of types: solve/record subtyping constraints
//-------------------------------------------------------------------------
-[]
/// Information about the context of a type equation.
+[]
type ContextInfo =
/// No context was given.
diff --git a/src/fsharp/ConstraintSolver.fsi b/src/fsharp/ConstraintSolver.fsi
index fb0d76a2b4e..dee696470e5 100644
--- a/src/fsharp/ConstraintSolver.fsi
+++ b/src/fsharp/ConstraintSolver.fsi
@@ -43,8 +43,8 @@ val FreshenTypars: range -> Typars -> TType list
val FreshenMethInfo: range -> MethInfo -> TType list
-[]
/// Information about the context of a type equation.
+[]
type ContextInfo =
/// No context was given.
diff --git a/src/fsharp/FSComp.txt b/src/fsharp/FSComp.txt
index 3648742e205..ae3e646f3c6 100644
--- a/src/fsharp/FSComp.txt
+++ b/src/fsharp/FSComp.txt
@@ -1629,3 +1629,4 @@ reprStateMachineInvalidForm,"The state machine has an unexpected form"
3517,optFailedToInlineSuggestedValue,"The value '%s' was marked 'InlineIfLambda' but was not determined to have a lambda value. This warning is for informational purposes only."
3518,implMissingInlineIfLambda,"The 'InlineIfLambda' attribute is present in the signature but not the implementation."
3519,tcInlineIfLambdaUsedOnNonInlineFunctionOrMethod,"The 'InlineIfLambda' attribute may only be used on parameters of inlined functions of methods whose type is a function or F# delegate type."
+3520,invalidXmlDocPosition,"XML comment is not placed on a valid language element."
diff --git a/src/fsharp/FSharp.Core/FSharp.Core.fsproj b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
index 6b1e945d68f..0b197c4f143 100644
--- a/src/fsharp/FSharp.Core/FSharp.Core.fsproj
+++ b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
@@ -17,6 +17,8 @@
$(OtherFlags) --warnon:1182
$(OtherFlags) --warnon:3390
+
+ $(OtherFlags) --warnon:3520
$(OtherFlags) --nowarn:57
diff --git a/src/fsharp/FSharp.Core/Linq.fs b/src/fsharp/FSharp.Core/Linq.fs
index 8bc7fcf5615..d46d9eedb56 100644
--- a/src/fsharp/FSharp.Core/Linq.fs
+++ b/src/fsharp/FSharp.Core/Linq.fs
@@ -497,7 +497,7 @@ module LeafExpressionConverter =
// or type T to an argument expecting Expression.
| ImplicitExpressionConversionHelperQ (_, [_], [x1]) -> ConvExprToLinqInContext env x1
- /// Use witnesses if they are available
+ // Use witnesses if they are available
| CallWithWitnesses (objArgOpt, _, minfo2, witnessArgs, args) ->
let fullArgs = witnessArgs @ args
let replacementExpr =
diff --git a/src/fsharp/FSharp.Core/Query.fsi b/src/fsharp/FSharp.Core/Query.fsi
index 118cf4b0e9d..62f7697c0fe 100644
--- a/src/fsharp/FSharp.Core/Query.fsi
+++ b/src/fsharp/FSharp.Core/Query.fsi
@@ -10,15 +10,15 @@ namespace Microsoft.FSharp.Linq
open System.Collections
open System.Collections.Generic
- []
///
/// A partial input or result in an F# query. This type is used to support the F# query syntax.
///
///
///
- /// Library functionality for F# query syntax and interoperability with .NET LINQ Expressions. See
+ /// Library functionality for F# query syntax and interoperability with .NET LINQ Expressions. See
/// also F# Query Expressions in the F# Language Guide.
///
+ []
type QuerySource<'T, 'Q> =
///
/// A method used to support the F# query syntax.
@@ -30,9 +30,9 @@ namespace Microsoft.FSharp.Linq
///
member Source: seq<'T>
- []
- /// The type used to support the F# query syntax. Use 'query { ... }' to use the query syntax. See
+ /// The type used to support the F# query syntax. Use 'query { ... }' to use the query syntax. See
/// also F# Query Expressions in the F# Language Guide.
+ []
type QueryBuilder =
/// Create an instance of this builder. Use 'query { ... }' to use the query syntax.
new: unit -> QueryBuilder
diff --git a/src/fsharp/FSharp.Core/SI.fs b/src/fsharp/FSharp.Core/SI.fs
index b0ec79e91f9..10a0798445c 100644
--- a/src/fsharp/FSharp.Core/SI.fs
+++ b/src/fsharp/FSharp.Core/SI.fs
@@ -4,112 +4,112 @@
namespace Microsoft.FSharp.Data.UnitSystems.SI.UnitNames
open Microsoft.FSharp.Core
- []
/// The SI unit of length
+ []
type metre
- []
/// The SI unit of length
+ []
type meter = metre
- []
/// The SI unit of mass
+ []
type kilogram
- []
/// The SI unit of time
+ []
type second
- []
/// The SI unit of electric current
+ []
type ampere
- []
/// The SI unit of thermodynamic temperature
+ []
type kelvin
- []
/// The SI unit of amount of substance
+ []
type mole
- []
/// The SI unit of luminous intensity
+ []
type candela
- []
/// The SI unit of frequency
+ []
type hertz = / second
- []
/// The SI unit of force
+ []
type newton = kilogram metre / second^2
- []
/// The SI unit of pressure, stress
+ []
type pascal = newton / metre^2
- []
/// The SI unit of energy, work, amount of heat
+ []
type joule = newton metre
- []
/// The SI unit of power, radiant flux
+ []
type watt = joule / second
- []
/// The SI unit of electric charge, amount of electricity
+ []
type coulomb = second ampere
- []
/// The SI unit of electric potential difference, electromotive force
+ []
type volt = watt/ampere
- []
/// The SI unit of capacitance
+ []
type farad = coulomb/volt
- []
/// The SI unit of electric resistance
+ []
type ohm = volt/ampere
- []
/// The SI unit of electric conductance
+ []
type siemens = ampere/volt
- []
/// The SI unit of magnetic flux
+ []
type weber = volt second
- []
/// The SI unit of magnetic flux density
+ []
type tesla = weber/metre^2
- []
/// The SI unit of inductance
+ []
type henry = weber/ampere
- []
/// The SI unit of luminous flux
+ []
type lumen = candela
- []
/// The SI unit of illuminance
+ []
type lux = lumen/metre^2
- []
/// The SI unit of activity referred to a radionuclide
+ []
type becquerel = second^-1
- []
/// The SI unit of absorbed dose
+ []
type gray = joule/kilogram
- []
/// The SI unit of does equivalent
+ []
type sievert = joule/kilogram
- []
/// The SI unit of catalytic activity
+ []
type katal = mole/second
@@ -118,106 +118,106 @@ namespace Microsoft.FSharp.Data.UnitSystems.SI.UnitSymbols
open Microsoft.FSharp.Core
open Microsoft.FSharp.Data.UnitSystems.SI.UnitNames
- []
/// A synonym for Metre, the SI unit of length
+ []
type m = metre
- []
/// A synonym for kilogram, the SI unit of mass
+ []
type kg = kilogram
- []
/// A synonym for second, the SI unit of time
+ []
type s = second
- []
/// A synonym for ampere, the SI unit of electric current
+ []
type A = ampere
- []
/// A synonym for kelvin, the SI unit of thermodynamic temperature
+ []
type K = kelvin
- []
/// A synonym for mole, the SI unit of amount of substance
+ []
type mol = mole
- []
/// A synonym for candela, the SI unit of luminous intensity
+ []
type cd = candela
- []
/// A synonym for hertz, the SI unit of frequency
+ []
type Hz = hertz
- []
/// A synonym for newton, the SI unit of force
+ []
type N = newton
- []
/// A synonym for pascal, the SI unit of pressure, stress
+ []
type Pa = pascal
- []
/// A synonym for joule, the SI unit of energy, work, amount of heat
+ []
type J = joule
- []
/// A synonym for watt, the SI unit of power, radiant flux
+ []
type W = watt
- []
/// A synonym for coulomb, the SI unit of electric charge, amount of electricity
+ []
type C = coulomb
- []
/// A synonym for volt, the SI unit of electric potential difference, electromotive force
+ []
type V = volt
- []
/// A synonym for farad, the SI unit of capacitance
+ []
type F = farad
- []
/// A synonym for siemens, the SI unit of electric conductance
+ []
type S = siemens
- []
/// A synonym for UnitNames.ohm, the SI unit of electric resistance.
+ []
type ohm = Microsoft.FSharp.Data.UnitSystems.SI.UnitNames.ohm
- []
/// A synonym for weber, the SI unit of magnetic flux
+ []
type Wb = weber
- []
/// A synonym for tesla, the SI unit of magnetic flux density
+ []
type T = tesla
- []
/// A synonym for lumen, the SI unit of luminous flux
+ []
type lm = lumen
- []
/// A synonym for lux, the SI unit of illuminance
+ []
type lx = lux
- []
/// A synonym for becquerel, the SI unit of activity referred to a radionuclide
+ []
type Bq = becquerel
- []
/// A synonym for gray, the SI unit of absorbed dose
+ []
type Gy = gray
- []
/// A synonym for sievert, the SI unit of does equivalent
+ []
type Sv = sievert
- []
/// A synonym for katal, the SI unit of catalytic activity
+ []
type kat = katal
- []
/// A synonym for henry, the SI unit of inductance
+ []
type H = henry
diff --git a/src/fsharp/FSharp.Core/array.fsi b/src/fsharp/FSharp.Core/array.fsi
index 0950c5e9a80..1dc582d5c95 100644
--- a/src/fsharp/FSharp.Core/array.fsi
+++ b/src/fsharp/FSharp.Core/array.fsi
@@ -345,10 +345,10 @@ module Array =
/// Returns an empty array of the given type.
/// The empty array.
- []
///
///
- ///
+ ///
+ []
[]
val empty<'T> : 'T[]
diff --git a/src/fsharp/FSharp.Core/array2.fsi b/src/fsharp/FSharp.Core/array2.fsi
index ec60c34a095..1216ea19c7f 100644
--- a/src/fsharp/FSharp.Core/array2.fsi
+++ b/src/fsharp/FSharp.Core/array2.fsi
@@ -6,8 +6,6 @@ open System
open Microsoft.FSharp.Collections
open Microsoft.FSharp.Core
-[]
-[]
/// Contains operations for working with 2-dimensional arrays.
///
///
@@ -23,6 +21,8 @@ open Microsoft.FSharp.Core
/// Non-zero-based arrays can also be created using Array2D.zeroCreateBased,
/// Array2D.createBased and Array2D.initBased.
///
+[]
+[]
module Array2D =
/// Fetches the base-index for the first dimension of the array.
@@ -265,5 +265,3 @@ module Array2D =
///
[]
val get: array:'T[,] -> index1:int -> index2:int -> 'T
-
-
diff --git a/src/fsharp/FSharp.Core/array3.fsi b/src/fsharp/FSharp.Core/array3.fsi
index 49b585aa8eb..f4490408c33 100644
--- a/src/fsharp/FSharp.Core/array3.fsi
+++ b/src/fsharp/FSharp.Core/array3.fsi
@@ -7,13 +7,13 @@ open Microsoft.FSharp.Collections
open Microsoft.FSharp.Core
open Microsoft.FSharp.Core.Operators
-[]
-[]
/// Contains operations for working with rank 3 arrays.
///
///
/// See also F# Language Guide - Arrays.
///
+[]
+[]
module Array3D =
/// Creates an array whose elements are all initially the given value.
@@ -159,9 +159,9 @@ module Array3D =
+/// Contains operations for working with rank 4 arrays.
[]
[]
-/// Contains operations for working with rank 4 arrays.
module Array4D =
/// Creates an array whose elements are all initially the given value
@@ -272,4 +272,3 @@ module Array4D =
///
[]
val set: array:'T[,,,] -> index1:int -> index2:int -> index3:int -> index4:int -> value:'T -> unit
-
diff --git a/src/fsharp/FSharp.Core/async.fs b/src/fsharp/FSharp.Core/async.fs
index 6afa26489de..6578233e762 100644
--- a/src/fsharp/FSharp.Core/async.fs
+++ b/src/fsharp/FSharp.Core/async.fs
@@ -233,9 +233,9 @@ namespace Microsoft.FSharp.Control
// NOTE: this must be a tailcall
cont res
+ /// Represents rarely changing components of an in-flight async computation
[]
[]
- /// Represents rarely changing components of an in-flight async computation
type AsyncActivationAux =
{ /// The active cancellation token
token: CancellationToken
@@ -249,9 +249,9 @@ namespace Microsoft.FSharp.Control
/// Holds some commonly-allocated callbacks and a mutable location to use for a trampoline
trampolineHolder: TrampolineHolder }
+ /// Represents context for an in-flight async computation
[]
[]
- /// Represents context for an in-flight async computation
type AsyncActivationContents<'T> =
{ /// The success continuation
cont: cont<'T>
@@ -305,8 +305,9 @@ namespace Microsoft.FSharp.Control
contents.aux.ccont (OperationCanceledException (contents.aux.token))
/// Check for trampoline hijacking.
+ //
// Note, this must make tailcalls, so may not be an instance member taking a byref argument,
- /// nor call any members taking byref arguments.
+ // nor call any members taking byref arguments.
static member inline HijackCheckThenCall (ctxt: AsyncActivation<'T>) cont arg =
ctxt.aux.trampolineHolder.HijackCheckThenCall cont arg
@@ -756,7 +757,7 @@ namespace Microsoft.FSharp.Control
/// - Hijack check after 'entering' the implied try/finally and after MoveNext call
/// - Do not apply 'GetEnumerator' with exception protection. However for an 'async'
/// in an 'async { ... }' the exception protection will be provided by the enclosing
- // Delay or Bind or similar construct.
+ /// Delay or Bind or similar construct.
/// - Apply 'MoveNext' with exception protection
/// - Apply 'Current' with exception protection
diff --git a/src/fsharp/FSharp.Core/async.fsi b/src/fsharp/FSharp.Core/async.fsi
index 75869a2e4ba..d127f6f6380 100644
--- a/src/fsharp/FSharp.Core/async.fsi
+++ b/src/fsharp/FSharp.Core/async.fsi
@@ -681,9 +681,9 @@ namespace Microsoft.FSharp.Control
type AsyncReturn
/// The F# compiler emits references to this type to implement F# async expressions.
- []
///
/// Async Internals
+ []
type AsyncActivation<'T> =
/// The F# compiler emits calls to this function to implement F# async expressions.
@@ -732,10 +732,10 @@ namespace Microsoft.FSharp.Control
| Error of ExceptionDispatchInfo
| Canceled of OperationCanceledException
- []
/// Entry points for generated code
///
/// Async Internals
+ []
module AsyncPrimitives =
/// The F# compiler emits calls to this function to implement F# async expressions.
@@ -805,11 +805,11 @@ namespace Microsoft.FSharp.Control
// Internals used by MailboxProcessor
val internal CreateAsyncResultAsync : AsyncResult<'T> -> Async<'T>
- []
- []
/// The type of the async operator, used to build workflows for asynchronous computations.
///
/// Async Programming
+ []
+ []
type AsyncBuilder =
/// Creates an asynchronous computation that enumerates the sequence seq
/// on demand and runs body for each element.
@@ -989,10 +989,10 @@ namespace Microsoft.FSharp.Control
/// A cancellation check is performed when the computation is executed.
internal new : unit -> AsyncBuilder
- []
/// A module of extension members providing asynchronous operations for some basic CLI types related to concurrency and I/O.
///
/// Async Programming
+ []
module CommonExtensions =
type System.IO.Stream with
diff --git a/src/fsharp/FSharp.Core/eventmodule.fsi b/src/fsharp/FSharp.Core/eventmodule.fsi
index 4e520b559f6..6dcd33f5d35 100644
--- a/src/fsharp/FSharp.Core/eventmodule.fsi
+++ b/src/fsharp/FSharp.Core/eventmodule.fsi
@@ -5,11 +5,11 @@ namespace Microsoft.FSharp.Control
open Microsoft.FSharp.Core
open Microsoft.FSharp.Control
- []
- []
/// Contains operations for working with values of type .
///
/// Events and Observables
+ []
+ []
module Event =
/// Fires the output event when either of the input events fire.
@@ -73,11 +73,10 @@ namespace Microsoft.FSharp.Control
[]
val choose: chooser:('T -> 'U option) -> sourceEvent:IEvent<'Del,'T> -> IEvent<'U>
- []
/// Returns a new event consisting of the results of applying the given accumulating function
/// to successive values triggered on the input event. An item of internal state
/// records the current value of the state parameter. The internal state is not locked during the
- /// execution of the accumulation function, so care should be taken that the
+ /// execution of the accumulation function, so care should be taken that the
/// input IEvent not triggered by multiple threads simultaneously.
///
/// The function to update the state with each event value.
@@ -85,6 +84,7 @@ namespace Microsoft.FSharp.Control
/// The input event.
///
/// An event that fires on the updated state values.
+ []
val scan: collector:('U -> 'T -> 'U) -> state:'U -> sourceEvent:IEvent<'Del,'T> -> IEvent<'U>
/// Runs the given function each time the given event is triggered.
diff --git a/src/fsharp/FSharp.Core/fslib-extra-pervasives.fsi b/src/fsharp/FSharp.Core/fslib-extra-pervasives.fsi
index c1dea425552..c5503282e65 100644
--- a/src/fsharp/FSharp.Core/fslib-extra-pervasives.fsi
+++ b/src/fsharp/FSharp.Core/fslib-extra-pervasives.fsi
@@ -3,10 +3,10 @@
/// Pervasives: Additional bindings available at the top level
namespace Microsoft.FSharp.Core
-[]
/// A set of extra operators and functions. This module is automatically opened in all F# code.
///
/// Basic Operators
+[]
module ExtraTopLevelOperators =
open System
@@ -294,8 +294,8 @@ namespace Microsoft.FSharp.Core.CompilerServices
/// Gets or sets the column for the location.
member Column : int with get, set
- []
/// Indicates that a code editor should hide all System.Object methods from the intellisense menus for instances of a provided type
+ []
type TypeProviderEditorHideMethodsAttribute =
inherit System.Attribute
diff --git a/src/fsharp/FSharp.Core/mailbox.fsi b/src/fsharp/FSharp.Core/mailbox.fsi
index b864b99ad43..bb8ec31eeb8 100644
--- a/src/fsharp/FSharp.Core/mailbox.fsi
+++ b/src/fsharp/FSharp.Core/mailbox.fsi
@@ -7,10 +7,10 @@ open System.Threading
open Microsoft.FSharp.Core
open Microsoft.FSharp.Control
-[]
/// A handle to a capability to reply to a PostAndReply message.
///
/// Agents
+[]
type AsyncReplyChannel<'Reply> =
/// Sends a reply to a PostAndReply message.
/// The value to send.
diff --git a/src/fsharp/FSharp.Core/math/z.fsi b/src/fsharp/FSharp.Core/math/z.fsi
index 463d57f3db0..a8c52f5703a 100644
--- a/src/fsharp/FSharp.Core/math/z.fsi
+++ b/src/fsharp/FSharp.Core/math/z.fsi
@@ -17,10 +17,10 @@ namespace Microsoft.FSharp.Core
/// Basic Types
type bigint = System.Numerics.BigInteger
- []
/// Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
///
/// Language Primitives
+ []
module NumericLiterals =
/// Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
diff --git a/src/fsharp/FSharp.Core/nativeptr.fsi b/src/fsharp/FSharp.Core/nativeptr.fsi
index 0c13ec823a5..1482e148a82 100644
--- a/src/fsharp/FSharp.Core/nativeptr.fsi
+++ b/src/fsharp/FSharp.Core/nativeptr.fsi
@@ -5,8 +5,6 @@ namespace Microsoft.FSharp.NativeInterop
open Microsoft.FSharp.Core
open Microsoft.FSharp.Collections
-[]
-[]
/// Contains operations on native pointers. Use of these operators may
/// result in the generation of unverifiable code.
///
@@ -15,6 +13,8 @@ open Microsoft.FSharp.Collections
/// also F# External Functions in
/// the F# Language Guide.
///
+[]
+[]
module NativePtr =
/// Returns a typed native pointer for a given machine address.
@@ -225,3 +225,4 @@ module NativePtr =
[]
[]
val inline copyBlock : destination: nativeptr<'T> -> source: nativeptr<'T> -> count: int -> unit
+
diff --git a/src/fsharp/FSharp.Core/observable.fsi b/src/fsharp/FSharp.Core/observable.fsi
index 80c77039ee0..47356773294 100644
--- a/src/fsharp/FSharp.Core/observable.fsi
+++ b/src/fsharp/FSharp.Core/observable.fsi
@@ -5,12 +5,12 @@ namespace Microsoft.FSharp.Control
open System
open Microsoft.FSharp.Core
-[]
-[]
/// Contains operations for working with first class event and other observable objects.
///
/// Events and Observables
-module Observable =
+[]
+[]
+module Observable =
/// Returns an observable for the merged observations from the sources.
/// The returned object propagates success and error values arising
diff --git a/src/fsharp/FSharp.Core/option.fsi b/src/fsharp/FSharp.Core/option.fsi
index aa85e6414c6..da16307e667 100644
--- a/src/fsharp/FSharp.Core/option.fsi
+++ b/src/fsharp/FSharp.Core/option.fsi
@@ -7,10 +7,10 @@ open Microsoft.FSharp.Core
open Microsoft.FSharp.Collections
-[]
/// Contains operations for working with options.
///
/// Options
+[]
module Option =
/// Returns true if the option is not None.
/// The input option.
diff --git a/src/fsharp/FSharp.Core/prim-types.fsi b/src/fsharp/FSharp.Core/prim-types.fsi
index 1683853779c..24f68574e0a 100644
--- a/src/fsharp/FSharp.Core/prim-types.fsi
+++ b/src/fsharp/FSharp.Core/prim-types.fsi
@@ -66,10 +66,10 @@ namespace Microsoft.FSharp.Core
/// Indicates that the compiled entity had private or internal representation in F# source code.
| NonPublicRepresentation = 32
- []
/// Indicates one or more adjustments to the compiled representation of an F# type or member.
///
/// Attributes
+ []
type CompilationRepresentationFlags =
/// No special compilation representation.
@@ -407,12 +407,12 @@ namespace Microsoft.FSharp.Core
/// StructuralComparisonAttribute
new : unit -> StructuralComparisonAttribute
- []
- []
/// Indicates that a member on a computation builder type is a custom query operator,
/// and indicates the name of that operator.
///
/// Attributes
+ []
+ []
type CustomOperationAttribute =
inherit Attribute
@@ -444,12 +444,12 @@ namespace Microsoft.FSharp.Core
/// Indicates if the custom operation maintains the variable space of the query of computation expression through the use of a bind operation
member MaintainsVariableSpaceUsingBind : bool with get,set
- []
- []
/// Indicates that, when a custom operator is used in a computation expression,
/// a parameter is automatically parameterized by the variable space of the computation expression
///
/// Attributes
+ []
+ []
type ProjectionParameterAttribute =
/// Creates an instance of the attribute
@@ -936,191 +936,191 @@ namespace Microsoft.FSharp.Core
/// or an enclosing module opened.
member Path: string
- []
- /// The type of double-precision floating point numbers, annotated with a unit of measure.
+ /// The type of double-precision floating point numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type float<[] 'Measure> = float
- []
- /// The type of single-precision floating point numbers, annotated with a unit of measure.
+ /// The type of single-precision floating point numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
///
/// Basic Types with Units of Measure
+ []
type float32<[] 'Measure> = float32
- []
/// The type of decimal numbers, annotated with a unit of measure. The unit
/// of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type decimal<[] 'Measure> = decimal
- []
/// The type of 32-bit signed integer numbers, annotated with a unit of measure. The unit
/// of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type int<[] 'Measure> = int
- []
/// The type of 8-bit signed integer numbers, annotated with a unit of measure. The unit
/// of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type sbyte<[] 'Measure> = sbyte
- []
/// The type of 16-bit signed integer numbers, annotated with a unit of measure. The unit
/// of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type int16<[] 'Measure> = int16
- []
/// The type of 64-bit signed integer numbers, annotated with a unit of measure. The unit
/// of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type int64<[] 'Measure> = int64
- []
- []
/// The type of machine-sized signed integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
/// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
+ []
type nativeint<[] 'Measure> = nativeint
- []
- []
/// The type of 32-bit unsigned integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
/// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
+ []
type uint<[] 'Measure> = uint
-
- []
- []
+
/// The type of 8-bit unsigned integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
/// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
+ []
type byte<[] 'Measure> = byte
- []
- []
- /// The type of 16-bit unsigned integer numbers, annotated with a unit of measure.
+ /// The type of 16-bit unsigned integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
+ []
type uint16<[] 'Measure> = uint16
- []
- []
- /// The type of 64-bit unsigned integer numbers, annotated with a unit of measure.
+ /// The type of 64-bit unsigned integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
+ []
type uint64<[] 'Measure> = uint64
- []
- []
- /// The type of machine-sized unsigned integer numbers, annotated with a unit of measure.
+ /// The type of machine-sized unsigned integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
+ []
type unativeint<[] 'Measure> = unativeint
- []
- /// The type of double-precision floating point numbers, annotated with a unit of measure.
+ /// The type of double-precision floating point numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type double<[] 'Measure> = float<'Measure>
- []
- /// The type of single-precision floating point numbers, annotated with a unit of measure.
+ /// The type of single-precision floating point numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type single<[] 'Measure> = float32<'Measure>
- []
- /// The type of 8-bit signed integer numbers, annotated with a unit of measure.
+ /// The type of 8-bit signed integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type int8<[] 'Measure> = sbyte<'Measure>
- []
- /// The type of 32-bit signed integer numbers, annotated with a unit of measure.
+ /// The type of 32-bit signed integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type int32<[] 'Measure> = int<'Measure>
- []
- /// The type of 8-bit unsigned integer numbers, annotated with a unit of measure.
+ /// The type of 8-bit unsigned integer numbers, annotated with a unit of measure.
/// The unit of measure is erased in compiled code and when values of this type
- /// are analyzed using reflection. The type is representationally equivalent to
+ /// are analyzed using reflection. The type is representationally equivalent to
/// .
///
/// Basic Types with Units of Measure
+ []
type uint8<[] 'Measure> = byte<'Measure>
- []
- ///