Movatterモバイル変換


[0]ホーム

URL:


Header menu logoF# Compiler Guide

FSharp.Compiler.Service

43.9.300 - 2025-05-13

Nuget

Fixed

Added

Changed

Breaking Changes

43.9.202 - 2025-04-08

Nuget

Fixed

Added

Changed

Breaking Changes

43.9.200 - Unreleased

Fixed

Added

Changed

Breaking Changes

43.9.100 - 2024-11-12

Nuget

Fixed

Added

Changed

Breaking Changes

43.8.400 - 2024-08-13

Nuget

Fixed

Added

Changed

43.8.300 - 2024-05-14

Nuget

Fixed

Added

Changed

43.8.202 - Unreleased

Fixed

nameof Module expressions and patterns are processed to link files in--test:GraphBasedChecking. (PR #16570,PR #16747)

43.8.200 - 2024-02-13

Nuget

Fixed

Added

Changed

43.8.100 - 2023-11-14

Nuget

Fixed

43.11.0 - Unreleased

Fixed

Added

Changed

Breaking Changes

43.10.100 - Unreleased

Added

Fixed

Changed

Breaking Changes

Migration Guidance for AST Users

Note: The unified AST introduces two new boolean fields:

1. Pattern Matching Updates

Before:

match expr with| SynExpr.LetOrUse(isRec, isUse, bindings, body, range, trivia) ->    // Handle regular let/use| SynExpr.LetOrUseBang(spBind, isUse, isFromSource, pat, rhs, andBangs, body, range, trivia) ->    // Handle let!/use!

After:

match expr with| SynExpr.LetOrUse(isRec, isUse, isFromSource, isBang, bindings, body, range, trivia) ->    if isBang then        // This is a let!/use! expression        match bindings with        | firstBinding :: andBangs ->            match firstBinding with            | SynBinding(headPat = pat; expr = rhs) ->                // pat and rhs extracted from first binding                // andBangs contains the and! bindings        | [] -> // error case    else        // This is a regular let/use expression

2. Construction Updates

Before:

// Creating a let! expressionSynExpr.LetOrUseBang(    bindDebugPoint,    false,  // isUse    true,   // isFromSource    pat,    rhsExpr,    andBangs,    bodyExpr,    range,    trivia)

After:

// Creating a let! expressionlet firstBinding = SynBinding(    accessibility = None,    kind = SynBindingKind.Normal,    isInline = false,    isMutable = false,    attributes = [],    xmlDoc = PreXmlDoc.Empty,    valData = SynInfo.emptySynValData,    headPat = pat,           // Pattern moved here    returnInfo = None,    expr = rhsExpr,          // RHS moved here    range = range,    debugPoint = bindDebugPoint,  // Debug point moved here    trivia = bindingTrivia)SynExpr.LetOrUse(    false,  // isRecursive    false,  // isUse    true,   // isFromSource    true,   // isBang (indicates let!)    firstBinding :: andBangs,  // All bindings in single list    bodyExpr,    range,    trivia)

3. Common Migration Patterns

Checking for computation expressions:

// Beforematch expr with| SynExpr.LetOrUseBang _ -> true| _ -> false// Aftermatch expr with| SynExpr.LetOrUse(isBang = true) -> true| _ -> false

Extracting pattern and expression from let!:

// Before| SynExpr.LetOrUseBang(_, _, _, pat, rhs, _, _, _, _) ->    processBinding pat rhs// After| SynExpr.LetOrUse(isBang = true; bindings = binding :: _) ->    match binding with    | SynBinding(headPat = pat; expr = rhs) ->        processBinding pat rhs    | _ -> // error

Processing and! bindings:

// Before| SynExpr.LetOrUseBang(_, _, _, firstPat, firstRhs, andBangs, _, _, _) ->    processFirst firstPat firstRhs    for andBang in andBangs do        processAndBang andBang// After| SynExpr.LetOrUse(isBang = true; bindings = bindings) ->    match bindings with    | first :: rest ->        processBinding first        for andBang in rest do            processAndBang andBang    | [] -> // error

[^1]: SeeMigration Guidance for AST Users section for detailed information on how to update your code to work with the unified AST representation.

namespace System
namespace System.IO
namespace System.Xml
namespace System.Xml.XPath
namespace Markdig
module Common
val path: string
type Path = static member ChangeExtension: path: string * extension: string -> string static member Combine: path1: string * path2: string -> string + 4 overloads static member EndsInDirectorySeparator: path: ReadOnlySpan<char> -> bool + 1 overload static member Exists: path: string -> bool static member GetDirectoryName: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetExtension: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFileName: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFileNameWithoutExtension: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFullPath: path: string -> string + 1 overload static member GetInvalidFileNameChars: unit -> char array ...
<summary>Performs operations on <see cref="T:System.String" /> instances that contain file or directory path information. These operations are performed in a cross-platform manner.</summary>
Path.Combine(paths: System.ReadOnlySpan<string>) : string
Path.Combine([<System.ParamArray>] paths: string array) : string
Path.Combine(path1: string, path2: string) : string
Path.Combine(path1: string, path2: string, path3: string) : string
Path.Combine(path1: string, path2: string, path3: string, path4: string) : string
val fcsMajorVersion: string
val versionPropsDoc: System.Xml.Linq.XDocument
(extension) System.Xml.Linq.XNode.XPathSelectElement(expression: string) : System.Xml.Linq.XElement
(extension) System.Xml.Linq.XNode.XPathSelectElement(expression: string, resolver: System.Xml.IXmlNamespaceResolver) : System.Xml.Linq.XElement
val nugetPackage: string
val availableNuGetVersions: Set<string>
val getAvailableNuGetVersions: packageName: string -> Set<string>
 Find all published versions of a package on NuGet
val processFolder: path: string -> processFile: (string -> string) -> string
 Process all MarkDown files from the given release folder
val file: string
val versionInFileName: string
[<return:NotNullIfNotNullAttribute ("path")>]Path.GetFileNameWithoutExtension(path: string) : string
Path.GetFileNameWithoutExtension(path: System.ReadOnlySpan<char>) : System.ReadOnlySpan<char>
val versionParts: string array
System.String.Split(separator: System.ReadOnlySpan<char>) : string array
   (+0 other overloads)
System.String.Split([<System.ParamArray>] separator: char array) : string array
   (+0 other overloads)
System.String.Split(separator: string array, options: System.StringSplitOptions) : string array
   (+0 other overloads)
System.String.Split(separator: string, ?options: System.StringSplitOptions) : string array
   (+0 other overloads)
System.String.Split(separator: char array, options: System.StringSplitOptions) : string array
   (+0 other overloads)
System.String.Split(separator: char array, count: int) : string array
   (+0 other overloads)
System.String.Split(separator: char, ?options: System.StringSplitOptions) : string array
   (+0 other overloads)
System.String.Split(separator: string array, count: int, options: System.StringSplitOptions) : string array
   (+0 other overloads)
System.String.Split(separator: string, count: int, ?options: System.StringSplitOptions) : string array
   (+0 other overloads)
System.String.Split(separator: char array, count: int, options: System.StringSplitOptions) : string array
   (+0 other overloads)
val version: string
val title: string
member Set.Contains: value: 'T -> bool
val tryGetReleaseDate: packageName: string -> version: string -> string option
 Try and find the publish date on NuGet
union case Option.None: Option<'T>
union case Option.Some: Value: 'T -> Option<'T>
val d: string
val nugetBadge: string
Multiple items
type String = interface IEnumerable<char> interface IEnumerable interface ICloneable interface IComparable interface IComparable<string> interface IConvertible interface IEquatable<string> interface IParsable<string> interface ISpanParsable<string> new: value: nativeptr<char> -> unit + 8 overloads ...
<summary>Represents text as a sequence of UTF-16 code units.</summary>

--------------------
System.String(value: nativeptr<char>) : System.String
System.String(value: char array) : System.String
System.String(value: System.ReadOnlySpan<char>) : System.String
System.String(value: nativeptr<sbyte>) : System.String
System.String(c: char, count: int) : System.String
System.String(value: nativeptr<char>, startIndex: int, length: int) : System.String
System.String(value: char array, startIndex: int, length: int) : System.String
System.String(value: nativeptr<sbyte>, startIndex: int, length: int) : System.String
System.String(value: nativeptr<sbyte>, startIndex: int, length: int, enc: System.Text.Encoding) : System.String
field string.Empty: string
val content: string
type File = static member AppendAllBytes: path: string * bytes: byte array -> unit + 1 overload static member AppendAllBytesAsync: path: string * bytes: byte array * ?cancellationToken: CancellationToken -> Task + 1 overload static member AppendAllLines: path: string * contents: IEnumerable<string> -> unit + 1 overload static member AppendAllLinesAsync: path: string * contents: IEnumerable<string> * encoding: Encoding * ?cancellationToken: CancellationToken -> Task + 1 overload static member AppendAllText: path: string * contents: ReadOnlySpan<char> -> unit + 3 overloads static member AppendAllTextAsync: path: string * contents: ReadOnlyMemory<char> * encoding: Encoding * ?cancellationToken: CancellationToken -> Task + 3 overloads static member AppendText: path: string -> StreamWriter static member Copy: sourceFileName: string * destFileName: string -> unit + 1 overload static member Create: path: string -> FileStream + 2 overloads static member CreateSymbolicLink: path: string * pathToTarget: string -> FileSystemInfo ...
<summary>Provides static methods for the creation, copying, deletion, moving, and opening of a single file, and aids in the creation of <see cref="T:System.IO.FileStream" /> objects.</summary>
File.ReadAllText(path: string) : string
File.ReadAllText(path: string, encoding: System.Text.Encoding) : string
type Markdown = static member Convert: markdown: string * renderer: IMarkdownRenderer * ?pipeline: MarkdownPipeline * ?context: MarkdownParserContext -> obj static member Normalize: markdown: string * ?options: NormalizeOptions * ?pipeline: MarkdownPipeline * ?context: MarkdownParserContext -> string + 1 overload static member Parse: markdown: string * ?trackTrivia: bool -> MarkdownDocument + 1 overload static member ToHtml: markdown: string * ?pipeline: MarkdownPipeline * ?context: MarkdownParserContext -> string + 3 overloads static member ToPlainText: markdown: string * writer: TextWriter * ?pipeline: MarkdownPipeline * ?context: MarkdownParserContext -> MarkdownDocument + 1 overload static member Version: string
<summary> Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats. </summary>
Markdown.ToHtml(document: Syntax.MarkdownDocument, ?pipeline: MarkdownPipeline) : string
Markdown.ToHtml(document: Syntax.MarkdownDocument, writer: TextWriter, ?pipeline: MarkdownPipeline) : unit
Markdown.ToHtml(markdown: string, ?pipeline: MarkdownPipeline, ?context: MarkdownParserContext) : string
Markdown.ToHtml(markdown: string, writer: TextWriter, ?pipeline: MarkdownPipeline, ?context: MarkdownParserContext) : Syntax.MarkdownDocument
val transformH3: version: string -> input: string -> string
 In order for the heading to appear in the page content menu in fsdocs,
 they need to follow a specific HTML structure.

On this page

Type something to start searching.


[8]ページ先頭

©2009-2025 Movatter.jp