diff --git a/DEVGUIDE.md b/DEVGUIDE.md
index f8029b45466..5110e331095 100644
--- a/DEVGUIDE.md
+++ b/DEVGUIDE.md
@@ -130,7 +130,7 @@ Once the "proto" compiler is built, it won't be built again, so you may want to
## Using your custom compiler to build other projects
-Building the compiler using `build.cmd` or `build.sh` will output artifacts in `artifacts\bin`.
+Building the compiler using `build.cmd` or `build.sh` will output artifacts in `artifacts\bin`.
To use your custom build of `Fsc`, add the `DotnetFscCompilerPath` property to your project's `.fsproj` file, adjusted to point at your local build directory, build configuration, and target framework as appropriate:
@@ -140,6 +140,25 @@ To use your custom build of `Fsc`, add the `DotnetFscCompilerPath` property to y
```
+### Changes in FSharp.Core
+
+The FSharp compiler uses an implicit FSharp.Core. This means that if you introduce changes to FSharp.Core and want to use it in a project, you need to disable the implicit version used by the compiler, and add a reference to your custom FSharp.Core dll. Both are done in the `.fsproj` file of your project.
+
+Disabling the implicit FSharp.Core is done with
+```
+
+ true
+
+```
+and referencing your custom FSharp.Core, available after you build the compiler, is done with
+```
+
+
+ D:\Git\fsharp\artifacts\bin\FSharp.Core\Debug\netstandard2.1\FSharp.Core.dll<\HintPath>
+
+
+```
+
## Updating FSComp.fs, FSComp.resx and XLF
If your changes involve modifying the list of language keywords in any way, (e.g. when implementing a new keyword), the XLF localization files need to be synced with the corresponding resx files. This can be done automatically by running
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index d3ccdd3792f..fe20d6c6c33 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -140,6 +140,8 @@ stages:
NativeToolsOnMachine: true
- script: .\tests\EndToEndBuildTests\EndToEndBuildTests.cmd -c $(_BuildConfig)
displayName: End to end build tests
+ continueOnError: true
+ condition: always()
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
diff --git a/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md b/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md
index 786a741dbfa..5507157222e 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md
@@ -1,5 +1,6 @@
### Fixed
+* Fix wrong range start of INTERP_STRING_END. ([PR #16774](https://github.com/dotnet/fsharp/pull/16774))
* Fix missing warning for recursive calls in list comprehensions. ([PR #16652](https://github.com/dotnet/fsharp/pull/16652))
* Code generated files with > 64K methods and generated symbols crash when loaded. Use infered sequence points for debugging. ([Issue #16399](https://github.com/dotnet/fsharp/issues/16399), [#PR 16514](https://github.com/dotnet/fsharp/pull/16514))
* `nameof Module` expressions and patterns are processed to link files in `--test:GraphBasedChecking`. ([PR #16550](https://github.com/dotnet/fsharp/pull/16550), [PR #16743](https://github.com/dotnet/fsharp/pull/16743))
@@ -11,6 +12,7 @@
* `[]` member should not produce property symbol. ([Issue #16640](https://github.com/dotnet/fsharp/issues/16640), [PR #16658](https://github.com/dotnet/fsharp/pull/16658))
* Fix discriminated union initialization. ([#PR 16661](https://github.com/dotnet/fsharp/pull/16661))
* Allow calling method with both Optional and ParamArray. ([#PR 16688](https://github.com/dotnet/fsharp/pull/16688), [suggestions #1120](https://github.com/fsharp/fslang-suggestions/issues/1120))
+* Fix release inline optimization, which leads to MethodAccessException if used with `assembly:InternalsVisibleTo`` attribute. ([Issue #16105](https://github.com/dotnet/fsharp/issues/16105), ([PR #16737](https://github.com/dotnet/fsharp/pull/16737))
* Enforce AttributeTargets on let values and functions. ([PR #16692](https://github.com/dotnet/fsharp/pull/16692))
### Added
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index c30f8e1630b..31ab30f9652 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,9 +1,9 @@
-
+
https://github.com/dotnet/source-build-reference-packages
- 62fb9a85e5c4af657b0014fd6d6588c139d0bb4f
+ d1c092f24a18f5ed76631fc6c865f706aca5d90f
@@ -30,9 +30,9 @@
-
+
https://github.com/dotnet/arcade
- da98edc4c3ea539f109ea320672136ceb32591a7
+ 042763a811fd94dc3556253d4c64118dd665216e
diff --git a/eng/Versions.props b/eng/Versions.props
index d62e0635a85..17d084022bd 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -3,9 +3,7 @@
false
- true
true
- true
true
true
diff --git a/eng/common/templates/steps/generate-sbom.yml b/eng/common/templates/steps/generate-sbom.yml
index a06373f38fa..2b21eae4273 100644
--- a/eng/common/templates/steps/generate-sbom.yml
+++ b/eng/common/templates/steps/generate-sbom.yml
@@ -5,7 +5,7 @@
# IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector.
parameters:
- PackageVersion: 7.0.0
+ PackageVersion: 8.0.0
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
PackageName: '.NET'
ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom
diff --git a/global.json b/global.json
index 1f759399b06..c784c02c369 100644
--- a/global.json
+++ b/global.json
@@ -17,7 +17,7 @@
"perl": "5.38.0.1"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24113.2",
+ "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24123.1",
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2"
}
}
diff --git a/src/Compiler/Optimize/Optimizer.fs b/src/Compiler/Optimize/Optimizer.fs
index fd3c85dd60b..afdc0616505 100644
--- a/src/Compiler/Optimize/Optimizer.fs
+++ b/src/Compiler/Optimize/Optimizer.fs
@@ -496,7 +496,7 @@ let rec IsPartialExprVal x =
| TupleValue args | RecdValue (_, args) | UnionCaseValue (_, args) -> Array.exists IsPartialExprVal args
| ConstValue _ | CurriedLambdaValue _ | ConstExprValue _ -> false
| ValValue (_, a)
- | SizeValue(_, a) -> IsPartialExprVal a
+ | SizeValue (_, a) -> IsPartialExprVal a
let CheckInlineValueIsComplete (v: Val) res =
if v.MustInline && IsPartialExprVal res then
@@ -690,10 +690,25 @@ let GetInfoForVal cenv env m (vref: ValRef) =
GetInfoForLocalValue cenv env vref.binding m
else
GetInfoForNonLocalVal cenv env vref
+ res
+let GetInfoForValWithCheck cenv env m (vref: ValRef) =
+ let res = GetInfoForVal cenv env m vref
check vref res |> ignore
res
+let IsPartialExpr cenv env m x =
+ let rec isPartialExpression x =
+ match x with
+ | Expr.App (func, _, _, args, _) -> func :: args |> Seq.exists isPartialExpression
+ | Expr.Lambda (_, _, _, _, expr, _, _) -> expr |> isPartialExpression
+ | Expr.Let (TBind (_,expr,_), body, _, _) -> expr :: [body] |> List.exists isPartialExpression
+ | Expr.LetRec (bindings, body, _, _) -> body :: (bindings |> List.map (fun (TBind (_,expr,_)) -> expr)) |> List.exists isPartialExpression
+ | Expr.Sequential (expr1, expr2, _, _) -> [expr1; expr2] |> Seq.exists isPartialExpression
+ | Expr.Val (vr, _, _) when not vr.IsLocalRef -> ((GetInfoForVal cenv env m vr).ValExprInfo) |> IsPartialExprVal
+ | _ -> false
+ isPartialExpression x
+
//-------------------------------------------------------------------------
// Try to get information about values of particular types
//-------------------------------------------------------------------------
@@ -3062,11 +3077,14 @@ and TryOptimizeVal cenv env (vOpt: ValRef option, mustInline, inlineIfLambda, va
failwith "tuple, union and record values cannot be marked 'inline'"
| UnknownValue when mustInline ->
- warning(Error(FSComp.SR.optValueMarkedInlineHasUnexpectedValue(), m)); None
+ warning(Error(FSComp.SR.optValueMarkedInlineHasUnexpectedValue(), m))
+ None
| _ when mustInline ->
- warning(Error(FSComp.SR.optValueMarkedInlineCouldNotBeInlined(), m)); None
- | _ -> None
+ warning(Error(FSComp.SR.optValueMarkedInlineCouldNotBeInlined(), m))
+ None
+
+ | _ -> None
and TryOptimizeValInfo cenv env m vinfo =
if vinfo.HasEffect then None else TryOptimizeVal cenv env (None, false, false, vinfo.Info, m)
@@ -3089,7 +3107,7 @@ and OptimizeVal cenv env expr (v: ValRef, m) =
let g = cenv.g
- let valInfoForVal = GetInfoForVal cenv env m v
+ let valInfoForVal = GetInfoForValWithCheck cenv env m v
match TryOptimizeVal cenv env (Some v, v.MustInline, v.InlineIfLambda, valInfoForVal.ValExprInfo, m) with
| Some e ->
@@ -3402,7 +3420,7 @@ and TryInlineApplication cenv env finfo (tyargs: TType list, args: Expr list, m)
| _ -> false
| _ -> false
| _ -> false
- | _ -> false
+ | _ -> false
if isValFromLazyExtensions then None else
@@ -3410,7 +3428,7 @@ and TryInlineApplication cenv env finfo (tyargs: TType list, args: Expr list, m)
match finfo.Info with
| ValValue(vref, _) ->
vref.Attribs |> List.exists (fun a -> (IsSecurityAttribute g cenv.amap cenv.casApplied a m) || (IsSecurityCriticalAttribute g a))
- | _ -> false
+ | _ -> false
if isSecureMethod then None else
@@ -3421,6 +3439,13 @@ and TryInlineApplication cenv env finfo (tyargs: TType list, args: Expr list, m)
if isGetHashCode then None else
+ let isApplicationPartialExpr =
+ match finfo.Info with
+ | ValValue (_, CurriedLambdaValue (_, _, _, expr, _) ) -> IsPartialExpr cenv env m expr
+ | _ -> false
+
+ if isApplicationPartialExpr then None else
+
// Inlining lambda
let f2R = CopyExprForInlining cenv false f2 m
@@ -3597,8 +3622,8 @@ and OptimizeApplication cenv env (f0, f0ty, tyargs, args, m) =
// This includes recursive calls to the function being defined (in which case we get a non-critical, closed-world tailcall).
// Note we also have to check the argument count to ensure this is a direct call (or a partial application).
let doesNotMakeCriticalTailcall =
- vref.MakesNoCriticalTailcalls ||
- (let valInfoForVal = GetInfoForVal cenv env m vref in valInfoForVal.ValMakesNoCriticalTailcalls) ||
+ vref.MakesNoCriticalTailcalls ||
+ (let valInfoForVal = GetInfoForValWithCheck cenv env m vref in valInfoForVal.ValMakesNoCriticalTailcalls) ||
(match env.functionVal with | None -> false | Some (v, _) -> valEq vref.Deref v)
if doesNotMakeCriticalTailcall then
let numArgs = otherArgs.Length + newArgs.Length
diff --git a/src/Compiler/Service/FSharpCheckerResults.fs b/src/Compiler/Service/FSharpCheckerResults.fs
index 045e0aae7a0..dda21fffd39 100644
--- a/src/Compiler/Service/FSharpCheckerResults.fs
+++ b/src/Compiler/Service/FSharpCheckerResults.fs
@@ -2685,7 +2685,7 @@ module internal ParseAndCheckFile =
| INTERP_STRING_BEGIN_PART _ | INTERP_STRING_PART _ as tok, _ ->
let braceOffset =
match tok with
- | INTERP_STRING_BEGIN_PART(_, SynStringKind.TripleQuote, (LexerContinuation.Token(_, (_, _, dl, _) :: _))) ->
+ | INTERP_STRING_BEGIN_PART(_, SynStringKind.TripleQuote, (LexerContinuation.Token(_, (_, _, dl, _, _) :: _))) ->
dl - 1
| _ -> 0
diff --git a/src/Compiler/Service/ServiceLexing.fs b/src/Compiler/Service/ServiceLexing.fs
index 66893ac950e..bc967f30dbe 100644
--- a/src/Compiler/Service/ServiceLexing.fs
+++ b/src/Compiler/Service/ServiceLexing.fs
@@ -36,7 +36,7 @@ module FSharpTokenTag =
tagOfToken (INTERP_STRING_BEGIN_PART("a", SynStringKind.Regular, LexCont.Default))
let INTERP_STRING_PART = tagOfToken (INTERP_STRING_PART("a", LexCont.Default))
- let INTERP_STRING_END = tagOfToken (INTERP_STRING_END("a", LexCont.Default))
+ let INTERP_STRING_END = tagOfToken (INTERP_STRING_END("a", None, LexCont.Default))
let LPAREN = tagOfToken LPAREN
let RPAREN = tagOfToken RPAREN
let LBRACK = tagOfToken LBRACK
@@ -493,7 +493,7 @@ module internal LexerStateEncoding =
| INTERP_STRING_BEGIN_PART(_, _, cont)
| INTERP_STRING_PART(_, cont)
| INTERP_STRING_BEGIN_END(_, _, cont)
- | INTERP_STRING_END(_, cont)
+ | INTERP_STRING_END(_, _, cont)
| LBRACE cont
| RBRACE cont
| BYTEARRAY(_, _, cont)
@@ -621,12 +621,12 @@ module internal LexerStateEncoding =
let tag1, i1, kind1, rest =
match stringNest with
| [] -> false, 0, 0, []
- | (i1, kind1, _, _) :: rest -> true, i1, encodeStringStyle kind1, rest
+ | (i1, kind1, _, _, _) :: rest -> true, i1, encodeStringStyle kind1, rest
let tag2, i2, kind2 =
match rest with
| [] -> false, 0, 0
- | (i2, kind2, _, _) :: _ -> true, i2, encodeStringStyle kind2
+ | (i2, kind2, _, _, _) :: _ -> true, i2, encodeStringStyle kind2
(if tag1 then 0b100000000000 else 0)
||| (if tag2 then 0b010000000000 else 0)
@@ -696,9 +696,9 @@ module internal LexerStateEncoding =
let nest =
[
if tag1 then
- i1, decodeStringStyle kind1, 0, range0
+ i1, decodeStringStyle kind1, 0, None, range0
if tag2 then
- i2, decodeStringStyle kind2, 0, range0
+ i2, decodeStringStyle kind2, 0, None, range0
]
nest
diff --git a/src/Compiler/SyntaxTree/LexHelpers.fs b/src/Compiler/SyntaxTree/LexHelpers.fs
index 02d4da364d4..5ee9a16c90b 100644
--- a/src/Compiler/SyntaxTree/LexHelpers.fs
+++ b/src/Compiler/SyntaxTree/LexHelpers.fs
@@ -190,7 +190,7 @@ type LexerStringFinisher =
else if isPart then
INTERP_STRING_PART(s, cont)
else
- INTERP_STRING_END(s, cont)
+ INTERP_STRING_END(s, None, cont)
elif kind.IsByteString then
let synByteStringKind =
if isVerbatim then
diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fs b/src/Compiler/SyntaxTree/ParseHelpers.fs
index cd4b41787e1..d90e395c0c9 100644
--- a/src/Compiler/SyntaxTree/ParseHelpers.fs
+++ b/src/Compiler/SyntaxTree/ParseHelpers.fs
@@ -308,7 +308,7 @@ type LexerStringKind =
/// Represents the degree of nesting of '{..}' and the style of the string to continue afterwards, in an interpolation fill.
/// Nesting counters and styles of outer interpolating strings are pushed on this stack.
-type LexerInterpolatedStringNesting = (int * LexerStringStyle * int * range) list
+type LexerInterpolatedStringNesting = (int * LexerStringStyle * int * range option * range) list
/// The parser defines a number of tokens for whitespace and
/// comments eliminated by the lexer. These carry a specification of
@@ -973,7 +973,7 @@ let checkEndOfFileError t =
match nesting with
| [] -> ()
- | (_, _, _, m) :: _ -> reportParseErrorAt m (FSComp.SR.parsEofInInterpolatedStringFill ())
+ | (_, _, _, _, m) :: _ -> reportParseErrorAt m (FSComp.SR.parsEofInInterpolatedStringFill ())
type BindingSet = BindingSetPreAttrs of range * bool * bool * (SynAttributes -> SynAccess option -> SynAttributes * SynBinding list) * range
diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fsi b/src/Compiler/SyntaxTree/ParseHelpers.fsi
index 9add16af683..a8d61f3cb7e 100644
--- a/src/Compiler/SyntaxTree/ParseHelpers.fsi
+++ b/src/Compiler/SyntaxTree/ParseHelpers.fsi
@@ -118,7 +118,7 @@ type LexerStringKind =
static member String: LexerStringKind
-type LexerInterpolatedStringNesting = (int * LexerStringStyle * int * range) list
+type LexerInterpolatedStringNesting = (int * LexerStringStyle * int * range option * range) list
[]
type LexerContinuation =
diff --git a/src/Compiler/lex.fsl b/src/Compiler/lex.fsl
index 995f3fe09c0..958c2fa51ea 100644
--- a/src/Compiler/lex.fsl
+++ b/src/Compiler/lex.fsl
@@ -120,7 +120,7 @@ let checkExprGreaterColonOp (lexbuf:UnicodeLexing.Lexbuf) =
let unexpectedChar lexbuf =
LEX_FAILURE (FSComp.SR.lexUnexpectedChar(lexeme lexbuf))
-let startString args (lexbuf: UnicodeLexing.Lexbuf) =
+let startString args (lexbuf: UnicodeLexing.Lexbuf) altStartForStringEnd =
let buf = ByteBuffer.Create StringCapacity
let m = lexbuf.LexemeRange
let startp = lexbuf.StartPos
@@ -160,7 +160,7 @@ let startString args (lexbuf: UnicodeLexing.Lexbuf) =
if isPart then
INTERP_STRING_PART (s, cont)
else
- INTERP_STRING_END (s, cont)
+ INTERP_STRING_END (s, altStartForStringEnd, cont)
else
let s = Lexhelp.stringBufferAsString buf
let synStringKind =
@@ -587,12 +587,12 @@ rule token (args: LexArgs) (skip: bool) = parse
else mlOnly m args skip lexbuf }
| '"'
- { let buf, fin, m = startString args lexbuf
+ { let buf, fin, m = startString args lexbuf None
// Single quote in triple quote ok, others disallowed
match args.stringNest with
- | (_, LexerStringStyle.ExtendedInterpolated, _, _) :: _
- | (_, LexerStringStyle.TripleQuote, _, _) :: _ -> ()
+ | (_, LexerStringStyle.ExtendedInterpolated, _, _, _) :: _
+ | (_, LexerStringStyle.TripleQuote, _, _, _) :: _ -> ()
| _ :: _ -> errorR(Error(FSComp.SR.lexSingleQuoteInSingleQuote(), m))
| [] -> ()
@@ -600,7 +600,7 @@ rule token (args: LexArgs) (skip: bool) = parse
else singleQuoteString (buf, fin, m, LexerStringKind.String, args) skip lexbuf }
| '$' '"' '"' '"'
- { let buf, fin, m = startString args lexbuf
+ { let buf, fin, m = startString args lexbuf None
// Single quote in triple quote ok, others disallowed
match args.stringNest with
@@ -612,7 +612,7 @@ rule token (args: LexArgs) (skip: bool) = parse
else tripleQuoteString (buf, fin, m, LexerStringKind.InterpolatedStringFirst, args) skip lexbuf }
| ('$'+) '"' '"' '"'
- { let buf, fin, m = startString args lexbuf
+ { let buf, fin, m = startString args lexbuf None
if lexbuf.SupportsFeature LanguageFeature.ExtendedStringInterpolation then
// Single quote in triple quote ok, others disallowed
@@ -635,11 +635,11 @@ rule token (args: LexArgs) (skip: bool) = parse
}
| '$' '"'
- { let buf,fin,m = startString args lexbuf
+ { let buf,fin,m = startString args lexbuf None
// Single quote in triple quote ok, others disallowed
match args.stringNest with
- | (_, style, _, _) :: _ when style = LexerStringStyle.ExtendedInterpolated || style = LexerStringStyle.TripleQuote -> ()
+ | (_, style, _, _, _) :: _ when style = LexerStringStyle.ExtendedInterpolated || style = LexerStringStyle.TripleQuote -> ()
| _ :: _ -> errorR(Error(FSComp.SR.lexSingleQuoteInSingleQuote(), m))
| _ -> ()
@@ -649,7 +649,7 @@ rule token (args: LexArgs) (skip: bool) = parse
singleQuoteString (buf, fin, m, LexerStringKind.InterpolatedStringFirst, args) skip lexbuf }
| '"' '"' '"'
- { let buf, fin, m = startString args lexbuf
+ { let buf, fin, m = startString args lexbuf None
args.interpolationDelimiterLength <- 0
@@ -664,12 +664,12 @@ rule token (args: LexArgs) (skip: bool) = parse
tripleQuoteString (buf, fin, m, LexerStringKind.String, args) skip lexbuf }
| '@' '"'
- { let buf, fin, m = startString args lexbuf
+ { let buf, fin, m = startString args lexbuf None
// Single quote in triple quote ok, others disallowed
match args.stringNest with
- | (_, LexerStringStyle.ExtendedInterpolated, _, _) :: _
- | (_, LexerStringStyle.TripleQuote, _, _) :: _ -> ()
+ | (_, LexerStringStyle.ExtendedInterpolated, _, _, _) :: _
+ | (_, LexerStringStyle.TripleQuote, _, _, _) :: _ -> ()
| _ :: _ -> errorR(Error(FSComp.SR.lexSingleQuoteInSingleQuote(), m))
| _ -> ()
@@ -679,11 +679,11 @@ rule token (args: LexArgs) (skip: bool) = parse
verbatimString (buf, fin, m, LexerStringKind.String, args) skip lexbuf }
| ("$@" | "@$") '"'
- { let buf, fin, m = startString args lexbuf
+ { let buf, fin, m = startString args lexbuf None
// Single quote in triple quote ok, others disallowed
match args.stringNest with
- | (_, style, _, _) :: _ when style = LexerStringStyle.ExtendedInterpolated || style = LexerStringStyle.TripleQuote -> ()
+ | (_, style, _, _, _) :: _ when style = LexerStringStyle.ExtendedInterpolated || style = LexerStringStyle.TripleQuote -> ()
| _ :: _ -> errorR(Error(FSComp.SR.lexSingleQuoteInSingleQuote(), m))
| _ -> ()
@@ -888,10 +888,10 @@ rule token (args: LexArgs) (skip: bool) = parse
{
match args.stringNest with
| [] -> ()
- | (counter, style, d, m) :: rest ->
+ | (counter, style, d, _, m) :: rest ->
// Note, we do not update the 'm', any incomplete-interpolation error
// will be reported w.r.t. the first '{'
- args.stringNest <- (counter + 1, style, d, m) :: rest
+ args.stringNest <- (counter + 1, style, d, None, m) :: rest
// To continue token-by-token lexing may involve picking up the new args.stringNes
let cont = LexCont.Token(args.ifdefStack, args.stringNest)
LBRACE cont
@@ -904,12 +904,17 @@ rule token (args: LexArgs) (skip: bool) = parse
// We encounter a '}' in the expression token stream. First check if we're in an interpolated string expression
// and continue the string if necessary
match args.stringNest with
- | (1, LexerStringStyle.ExtendedInterpolated, delimLength, r) :: rest when delimLength > 1 ->
- args.stringNest <- (1, LexerStringStyle.ExtendedInterpolated, delimLength - 1, r) :: rest
+ | (1, LexerStringStyle.ExtendedInterpolated, delimLength, altR, r) :: rest when delimLength > 1 ->
+ // On the first "}" of multiple "}", keep the range of the starting "}" for later processing in startString
+ let altStart =
+ match altR with
+ | None -> Some lexbuf.LexemeRange
+ | _ -> altR
+ args.stringNest <- (1, LexerStringStyle.ExtendedInterpolated, delimLength - 1, altStart, r) :: rest
token args skip lexbuf
- | (1, style, _, _) :: rest ->
+ | (1, style, _, altR, _r) :: rest ->
args.stringNest <- rest
- let buf, fin, m = startString args lexbuf
+ let buf, fin, m = startString args lexbuf altR
if not skip then
STRING_TEXT (LexCont.String(args.ifdefStack, args.stringNest, style, LexerStringKind.InterpolatedStringPart, args.interpolationDelimiterLength, m))
else
@@ -918,11 +923,10 @@ rule token (args: LexArgs) (skip: bool) = parse
| LexerStringStyle.SingleQuote -> singleQuoteString (buf, fin, m, LexerStringKind.InterpolatedStringPart, args) skip lexbuf
| LexerStringStyle.TripleQuote -> tripleQuoteString (buf, fin, m, LexerStringKind.InterpolatedStringPart, args) skip lexbuf
| LexerStringStyle.ExtendedInterpolated -> extendedInterpolatedString (buf, fin, m, LexerStringKind.InterpolatedStringPart, args) skip lexbuf
-
- | (counter, style, d, m) :: rest ->
+ | (counter, style, d, altR, m) :: rest ->
// Note, we do not update the 'm', any incomplete-interpolation error
// will be reported w.r.t. the first '{'
- args.stringNest <- (counter - 1, style, d, m) :: rest
+ args.stringNest <- (counter - 1, style, d, altR, m) :: rest
let cont = LexCont.Token(args.ifdefStack, args.stringNest)
RBRACE cont
@@ -1260,7 +1264,7 @@ and singleQuoteString (sargs: LexerStringArgs) (skip: bool) = parse
if kind.IsInterpolated then
// get a new range for where the fill starts
let m2 = lexbuf.LexemeRange
- args.stringNest <- (1, LexerStringStyle.SingleQuote, args.interpolationDelimiterLength, m2) :: args.stringNest
+ args.stringNest <- (1, LexerStringStyle.SingleQuote, args.interpolationDelimiterLength, None, m2) :: args.stringNest
let cont = LexCont.Token(args.ifdefStack, args.stringNest)
fin.Finish buf kind LexerStringFinisherContext.InterpolatedPart cont
else
@@ -1376,7 +1380,7 @@ and verbatimString (sargs: LexerStringArgs) (skip: bool) = parse
if kind.IsInterpolated then
// get a new range for where the fill starts
let m2 = lexbuf.LexemeRange
- args.stringNest <- (1, LexerStringStyle.Verbatim, args.interpolationDelimiterLength, m2) :: args.stringNest
+ args.stringNest <- (1, LexerStringStyle.Verbatim, args.interpolationDelimiterLength, None, m2) :: args.stringNest
let cont = LexCont.Token(args.ifdefStack, args.stringNest)
fin.Finish buf kind (LexerStringFinisherContext.InterpolatedPart ||| LexerStringFinisherContext.Verbatim) cont
else
@@ -1495,7 +1499,7 @@ and tripleQuoteString (sargs: LexerStringArgs) (skip: bool) = parse
if kind.IsInterpolated then
// get a new range for where the fill starts
let m2 = lexbuf.LexemeRange
- args.stringNest <- (1, LexerStringStyle.TripleQuote, args.interpolationDelimiterLength, m2) :: args.stringNest
+ args.stringNest <- (1, LexerStringStyle.TripleQuote, args.interpolationDelimiterLength, None, m2) :: args.stringNest
let cont = LexCont.Token(args.ifdefStack, args.stringNest)
fin.Finish buf kind (LexerStringFinisherContext.InterpolatedPart ||| LexerStringFinisherContext.TripleQuote) cont
else
@@ -1600,7 +1604,7 @@ and extendedInterpolatedString (sargs: LexerStringArgs) (skip: bool) = parse
let maxBraces = 2 * args.interpolationDelimiterLength - 1
if numBraces > maxBraces then
let m2 = lexbuf.LexemeRange
- args.stringNest <- (1, LexerStringStyle.ExtendedInterpolated, args.interpolationDelimiterLength, m2) :: args.stringNest
+ args.stringNest <- (1, LexerStringStyle.ExtendedInterpolated, args.interpolationDelimiterLength, None, m2) :: args.stringNest
let cont = LexCont.Token(args.ifdefStack, args.stringNest)
fail args lexbuf
(FSComp.SR.lexTooManyLBracesInTripleQuote())
@@ -1621,7 +1625,7 @@ and extendedInterpolatedString (sargs: LexerStringArgs) (skip: bool) = parse
String.replicate extraBraces "{" |> addUnicodeString buf
// get a new range for where the fill starts
let m2 = lexbuf.LexemeRange
- args.stringNest <- (1, LexerStringStyle.ExtendedInterpolated, args.interpolationDelimiterLength, m2) :: args.stringNest
+ args.stringNest <- (1, LexerStringStyle.ExtendedInterpolated, args.interpolationDelimiterLength, None, m2) :: args.stringNest
let cont = LexCont.Token(args.ifdefStack, args.stringNest)
fin.Finish buf kind (LexerStringFinisherContext.InterpolatedPart ||| LexerStringFinisherContext.TripleQuote) cont
}
diff --git a/src/Compiler/pars.fsy b/src/Compiler/pars.fsy
index 4080fc7ec8b..36e8d0838c8 100644
--- a/src/Compiler/pars.fsy
+++ b/src/Compiler/pars.fsy
@@ -38,7 +38,7 @@ let parse_error_rich = Some(fun (ctxt: ParseErrorContext<_>) ->
%token INTERP_STRING_BEGIN_END
%token INTERP_STRING_BEGIN_PART
%token INTERP_STRING_PART
-%token INTERP_STRING_END
+%token INTERP_STRING_END
%token LBRACE RBRACE
%token KEYWORD_STRING // Like __SOURCE_DIRECTORY__
@@ -6774,7 +6774,14 @@ interpolatedStringFill:
interpolatedStringParts:
| INTERP_STRING_END
- { [ SynInterpolatedStringPart.String(fst $1, rhs parseState 1) ] }
+ {
+ let (s, altStart, _) = $1
+ let mOrig = rhs parseState 1
+ let m =
+ match altStart with
+ | Some r -> unionRanges r mOrig
+ | None -> mOrig
+ [ SynInterpolatedStringPart.String(s, m) ] }
| INTERP_STRING_PART interpolatedStringFill interpolatedStringParts
{ SynInterpolatedStringPart.String(fst $1, rhs parseState 1) :: SynInterpolatedStringPart.FillExpr $2 :: $3 }
diff --git a/tests/FSharp.Compiler.ComponentTests/Debugger/PortablePdbs.fs b/tests/FSharp.Compiler.ComponentTests/Debugger/PortablePdbs.fs
index ffd7336997a..767d1f75670 100644
--- a/tests/FSharp.Compiler.ComponentTests/Debugger/PortablePdbs.fs
+++ b/tests/FSharp.Compiler.ComponentTests/Debugger/PortablePdbs.fs
@@ -74,9 +74,7 @@ module Baz =
Line 16, Col 20, Line 16, Col 22
Line 21, Col 20, Line 21, Col 22
]
- VerifyDocuments [
- Path.Combine(Environment.CurrentDirectory, "test.fs")
- ]
+ VerifyDocuments [ "test.fs" ]
]
[]
@@ -100,9 +98,4 @@ module M =
|> withPortablePdb
|> compile
|> shouldSucceed
- |> verifyPdb [
- VerifyDocuments [
- Path.Combine(Environment.CurrentDirectory, "test.fsi")
- Path.Combine(Environment.CurrentDirectory, "test.fs")
- ]
- ]
+ |> verifyPdb [ VerifyDocuments [ "test.fsi"; "test.fs" ] ]
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/NoCompilerInlining.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/NoCompilerInlining.fs
index b798d155209..f9be4e7def9 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/NoCompilerInlining.fs
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/NoCompilerInlining.fs
@@ -5,7 +5,319 @@ namespace EmittedIL
open Xunit
open FSharp.Test.Compiler
-module ``NoCompilerInlining`` =
+module NoCompilerInlining =
+
+ []
+ let ``Inline nested binding using internal value not available for cross module inlining``() =
+
+ let outerModule =
+ FSharpWithFileName
+ "outerModule.fs"
+ """
+module internal OuterModule
+ open System.Runtime.CompilerServices
+
+ []
+ do ()
+
+ let helloWorld = "Hello World"
+ let sayOuterModuleHello (msg:string) = System.Console.WriteLine(msg) """
+ |> withOptimize
+ |> asLibrary
+ |> withName "outerLibrary"
+
+ let middleModule =
+ FSharpWithFileName
+ "middleModule.fs"
+ """
+module MiddleModule
+ let sayMiddleModuleHello () =
+ let msg = OuterModule.helloWorld
+ OuterModule.sayOuterModuleHello(msg)"""
+ |> withOptimize
+ |> withReferences [outerModule]
+ |> asLibrary
+ |> withName "middleModule"
+
+ FSharpWithFileName
+ "program.fs"
+ """MiddleModule.sayMiddleModuleHello()"""
+ |> withOptimize
+ |> withReferences [middleModule; outerModule]
+ |> withName "Program"
+ |> compileExeAndRun
+ |> shouldSucceed
+ |> verifyIL [ """
+ .method public static void main@() cil managed
+ {
+ .entrypoint
+
+ .maxstack 8
+ IL_0000: call void [middleModule]MiddleModule::sayMiddleModuleHello()
+ IL_0005: ret
+ }
+""" ]
+
+ []
+ let ``Methods marked internal not available for cross module inlining``() =
+
+ let outerModule =
+ FSharpWithFileName
+ "outerModule.fs"
+ """
+module internal OuterModule
+ open System.Runtime.CompilerServices
+
+ []
+ do ()
+
+ let sayOuterModuleHello () = System.Console.WriteLine("Hello World") """
+ |> withOptimize
+ |> asLibrary
+ |> withName "outerLibrary"
+
+ let middleModule =
+ FSharpWithFileName
+ "middleModule.fs"
+ """
+module MiddleModule
+ let sayMiddleModuleHello () = OuterModule.sayOuterModuleHello()"""
+ |> withOptimize
+ |> withReferences [outerModule]
+ |> asLibrary
+ |> withName "middleModule"
+
+ FSharpWithFileName
+ "program.fs"
+ """MiddleModule.sayMiddleModuleHello()"""
+ |> withOptimize
+ |> withReferences [middleModule; outerModule]
+ |> withName "Program"
+ |> compileExeAndRun
+ |> shouldSucceed
+ |> verifyIL [ """
+ .method public static void main@() cil managed
+ {
+ .entrypoint
+
+ .maxstack 8
+ IL_0000: call void [middleModule]MiddleModule::sayMiddleModuleHello()
+ IL_0005: ret
+ }
+""" ]
+
+ []
+ let ``Methods marked internal not available for cross module inlining 2``() =
+
+ let outerModule =
+ FSharpWithFileName
+ "outerModule.fs"
+ """
+module public OuterModule
+ open System.Runtime.CompilerServices
+
+ []
+ do ()
+
+ let sayOuterModuleHello () = System.Console.WriteLine("Hello World") """
+ |> withOptimize
+ |> asLibrary
+ |> withName "outerLibrary"
+
+ let middleModule =
+ FSharpWithFileName
+ "middleModule.fs"
+ """
+module MiddleModule
+ let sayMiddleModuleHello () =
+ let x = 1
+ let y = 2
+ System.Console.WriteLine("x + y: {0} + {1} = ", x, y)
+ OuterModule.sayOuterModuleHello()"""
+ |> withOptimize
+ |> withReferences [outerModule]
+ |> asLibrary
+ |> withName "middleModule"
+
+ FSharpWithFileName
+ "program.fs"
+ """MiddleModule.sayMiddleModuleHello()"""
+ |> withOptimize
+ |> withReferences [middleModule; outerModule]
+ |> withName "Program"
+ |> compileExeAndRun
+ |> shouldSucceed
+ |> verifyIL [ """
+ .method public static void main@() cil managed
+ {
+ .entrypoint
+
+ .maxstack 8
+ IL_0000: ldstr "x + y: {0} + {1} = "
+ IL_0005: ldc.i4.1
+ IL_0006: box [runtime]System.Int32
+ IL_000b: ldc.i4.2
+ IL_000c: box [runtime]System.Int32
+ IL_0011: call void [runtime]System.Console::WriteLine(string,
+ object,
+ object)
+ IL_0016: ldstr "Hello World"
+ IL_001b: call void [runtime]System.Console::WriteLine(string)
+ IL_0020: ret
+ }
+""" ]
+
+
+ []
+ let ``Methods marked public available for cross module inlining``() =
+
+ let outerModule =
+ FSharpWithFileName
+ "outerModule.fs"
+ """
+module OuterModule
+ open System.Runtime.CompilerServices
+
+ let sayOuterModuleHello () = System.Console.WriteLine("Hello World") """
+ |> withOptimize
+ |> asLibrary
+ |> withName "outerLibrary"
+
+ let middleModule =
+ FSharpWithFileName
+ "middleModule.fs"
+ """
+module MiddleModule
+ let sayMiddleModuleHello () = OuterModule.sayOuterModuleHello()"""
+ |> withOptimize
+ |> withReferences [outerModule]
+ |> asLibrary
+ |> withName "middleModule"
+
+ FSharpWithFileName
+ "program.fs"
+ """MiddleModule.sayMiddleModuleHello()"""
+ |> withOptimize
+ |> withReferences [middleModule; outerModule]
+ |> withName "Program"
+ |> compileExeAndRun
+ |> shouldSucceed
+ |> verifyIL [ """
+ .method public static void main@() cil managed
+ {
+ .entrypoint
+
+ .maxstack 8
+ IL_0000: ldstr "Hello World"
+ IL_0005: call void [runtime]System.Console::WriteLine(string)
+ IL_000a: ret
+ }
+""" ]
+
+
+ []
+ let ``Nested Module marked internal not available for cross module inlining``() =
+
+ let outerModule =
+ FSharpWithFileName
+ "outerModule.fs"
+ """
+module OuterModule
+ open System.Runtime.CompilerServices
+
+ []
+ do ()
+
+ module internal nestedModule =
+ let sayNestedModuleHello () = System.Console.WriteLine("Hello World")
+
+ let sayOuterModuleHello () = nestedModule.sayNestedModuleHello () """
+ |> withOptimize
+ |> asLibrary
+ |> withName "outerLibrary"
+
+ let middleModule =
+ FSharpWithFileName
+ "middleModule.fs"
+ """
+module MiddleModule
+ let sayMiddleModuleHello () = OuterModule.sayOuterModuleHello()"""
+ |> withOptimize
+ |> withReferences [outerModule]
+ |> asLibrary
+ |> withName "middleModule"
+
+ FSharpWithFileName
+ "program.fs"
+ """MiddleModule.sayMiddleModuleHello()"""
+ |> withOptimize
+ |> withReferences [middleModule; outerModule]
+ |> withName "Program"
+ |> compileExeAndRun
+ |> shouldSucceed
+ |> verifyIL [ """
+ .method public static void main@() cil managed
+ {
+ .entrypoint
+
+ .maxstack 8
+ IL_0000: ldstr "Hello World"
+ IL_0005: call void [runtime]System.Console::WriteLine(string)
+ IL_000a: ret
+ }
+""" ]
+
+ []
+ let ``Nested Module marked public available for cross module inlining``() =
+
+ let outerModule =
+ FSharpWithFileName
+ "outerModule.fs"
+ """
+module OuterModule
+ open System.Runtime.CompilerServices
+
+ module nestedModule =
+ let sayNestedModuleHello () = System.Console.WriteLine("Hello World")
+
+ let sayOuterModuleHello () = nestedModule.sayNestedModuleHello () """
+ |> withOptimize
+ |> asLibrary
+ |> withName "outerLibrary"
+
+ let middleModule =
+ FSharpWithFileName
+ "middleModule.fs"
+ """
+module MiddleModule
+ let sayMiddleModuleHello () = OuterModule.sayOuterModuleHello()"""
+ |> withOptimize
+ |> withReferences [outerModule]
+ |> asLibrary
+ |> withName "middleModule"
+
+ FSharpWithFileName
+ "program.fs"
+ """MiddleModule.sayMiddleModuleHello()"""
+ |> withOptimize
+ |> withReferences [middleModule; outerModule]
+ |> withName "Program"
+ |> compileExeAndRun
+ |> shouldSucceed
+ |> verifyIL [ """
+ .method public static void main@() cil managed
+ {
+ .entrypoint
+
+ .maxstack 8
+ IL_0000: ldstr "Hello World"
+ IL_0005: call void [runtime]System.Console::WriteLine(string)
+ IL_000a: ret
+ }
+""" ]
+
+
+
[]
let ``Function marked with NoCompilerInlining is not inlined by the compiler``() =
FSharp """
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowingTests.fs b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowingTests.fs
index fe178ad1975..eefb9cf7a98 100644
--- a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowingTests.fs
+++ b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowingTests.fs
@@ -1,9 +1,9 @@
-module FSharp.Compiler.ComponentTests.TypeChecks.TypeExtensions.PropertyShadowingTests
+module FSharp.Compiler.ComponentTests.TypeChecks.TypeExtensions.Shadowing
open Xunit
open FSharp.Test
open FSharp.Test.Compiler
-let [] folder = __SOURCE_DIRECTORY__ + "/PropertyShadowing"
+let [] folder = __SOURCE_DIRECTORY__ + "/Shadowing"
[] folder = __SOURCE_DIRECTORY__ + "/PropertyShadowing"
"ShadowWithLastOpenedTypeExtensions.fsx"
|]
)>]
-let ``can hide property`` compilation =
+let PropertyHidding compilation =
compilation
|> asFsx
|> withOptions ["--langversion:preview"]
@@ -38,7 +38,7 @@ let ``can hide property`` compilation =
|]
, BaselineSuffix = ".support.added.later"
)>]
-let ``cannot hide property v7.0 support added later`` compilation =
+let ``PropertyHiding v7.0`` compilation =
compilation
|> asFsx
|> withOptions ["--langversion:7.0"]
@@ -57,7 +57,7 @@ let ``cannot hide property v7.0 support added later`` compilation =
"E_NoChangeForEvent.fsx"
|]
)>]
-let ``cannot hide property`` compilation =
+let ``PropertyHiding fails`` compilation =
compilation
|> asFsx
|> withOptions ["--langversion:preview"]
@@ -77,7 +77,7 @@ let ``cannot hide property`` compilation =
"E_NoChangeForEvent.fsx"
|]
)>]
-let ``cannot hide property v7.0`` compilation =
+let ``PropertyHidingFails v7.0`` compilation =
compilation
|> asFsx
|> withOptions ["--langversion:7.0"]
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithExtensionMethod.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowFunctionPropertyWithTypeExtension.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithExtensionMethod.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_CannotShadowIndexedPropertyWithTypeExtension.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_NoChangeForEvent.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_NoChangeForEvent.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_NoChangeForEvent.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_NoChangeForEvent.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_NoChangeForEvent.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_NoChangeForEvent.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_NoChangeForEvent.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_NoChangeForEvent.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_NoChangeForEvent.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_NoChangeForEvent.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/E_NoChangeForEvent.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/E_NoChangeForEvent.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.il.net472.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.il.net472.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.il.net472.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.il.netcore.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.il.netcore.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.il.netcore.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.support.added.later.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.support.added.later.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.support.added.later.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.support.added.later.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.support.added.later.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.support.added.later.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/LinqCount.fsx.support.added.later.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/LinqCount.fsx.support.added.later.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowStaticProperty.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowStaticProperty.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowStaticProperty.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowStaticProperty.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowStaticProperty.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowStaticProperty.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowStaticProperty.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowStaticProperty.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowStaticProperty.fsx.support.added.later.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowStaticProperty.fsx.support.added.later.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowStaticProperty.fsx.support.added.later.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowStaticProperty.fsx.support.added.later.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowStaticProperty.fsx.support.added.later.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowStaticProperty.fsx.support.added.later.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowStaticProperty.fsx.support.added.later.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowStaticProperty.fsx.support.added.later.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx.support.added.later.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx.support.added.later.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx.support.added.later.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx.support.added.later.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx.support.added.later.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx.support.added.later.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithExtensionMethod.fsx.support.added.later.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithExtensionMethod.fsx.support.added.later.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.il.bsl
similarity index 79%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.il.bsl
index 2244a998dae..a0e89588014 100644
--- a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.il.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.il.bsl
@@ -45,8 +45,7 @@
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 )
.field static assembly int32 x
.field static assembly int32 init@4
- .method assembly specialname rtspecialname
- instance void .ctor() cil managed
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
{
.maxstack 8
@@ -57,8 +56,7 @@
IL_0008: ret
}
- .method public specialname static int32
- get_X() cil managed
+ .method public specialname static int32 get_X() cil managed
{
.maxstack 8
@@ -74,8 +72,7 @@
IL_0016: ret
}
- .method public specialname static void
- set_X(int32 v) cil managed
+ .method public specialname static void set_X(int32 v) cil managed
{
.maxstack 8
@@ -92,8 +89,7 @@
IL_0017: ret
}
- .method private specialname rtspecialname static
- void .cctor() cil managed
+ .method private specialname rtspecialname static void .cctor() cil managed
{
.maxstack 8
@@ -118,8 +114,7 @@
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
- .method assembly specialname rtspecialname
- instance void .ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'value') cil managed
+ .method assembly specialname rtspecialname instance void .ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'value') cil managed
{
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
@@ -133,8 +128,7 @@
IL_000d: ret
}
- .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.AsyncReturn
- Invoke(valuetype [FSharp.Core]Microsoft.FSharp.Control.AsyncActivation`1> ctxt) cil managed
+ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.AsyncReturn Invoke(valuetype [FSharp.Core]Microsoft.FSharp.Control.AsyncActivation`1> ctxt) cil managed
{
.maxstack 8
@@ -156,8 +150,7 @@
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
- .method assembly specialname rtspecialname
- instance void .ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'value') cil managed
+ .method assembly specialname rtspecialname instance void .ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'value') cil managed
{
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
@@ -171,8 +164,7 @@
IL_000d: ret
}
- .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.AsyncReturn
- Invoke(valuetype [FSharp.Core]Microsoft.FSharp.Control.AsyncActivation`1> ctxt) cil managed
+ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.AsyncReturn Invoke(valuetype [FSharp.Core]Microsoft.FSharp.Control.AsyncActivation`1> ctxt) cil managed
{
.maxstack 8
@@ -191,8 +183,7 @@
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>>
{
.field static assembly initonly class assembly/todo1@18 @_instance
- .method assembly specialname rtspecialname
- instance void .ctor() cil managed
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
{
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
@@ -203,8 +194,7 @@
IL_0006: ret
}
- .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1>
- Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit unitVar) cil managed
+ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit unitVar) cil managed
{
.maxstack 6
@@ -234,8 +224,7 @@
IL_0037: ret
}
- .method private specialname rtspecialname static
- void .cctor() cil managed
+ .method private specialname rtspecialname static void .cctor() cil managed
{
.maxstack 10
@@ -253,8 +242,7 @@
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
- .method assembly specialname rtspecialname
- instance void .ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'value') cil managed
+ .method assembly specialname rtspecialname instance void .ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'value') cil managed
{
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
@@ -268,8 +256,7 @@
IL_000d: ret
}
- .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.AsyncReturn
- Invoke(valuetype [FSharp.Core]Microsoft.FSharp.Control.AsyncActivation`1> ctxt) cil managed
+ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.AsyncReturn Invoke(valuetype [FSharp.Core]Microsoft.FSharp.Control.AsyncActivation`1> ctxt) cil managed
{
.maxstack 8
@@ -291,8 +278,7 @@
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
- .method assembly specialname rtspecialname
- instance void .ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'value') cil managed
+ .method assembly specialname rtspecialname instance void .ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'value') cil managed
{
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
@@ -306,8 +292,7 @@
IL_000d: ret
}
- .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.AsyncReturn
- Invoke(valuetype [FSharp.Core]Microsoft.FSharp.Control.AsyncActivation`1> ctxt) cil managed
+ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.AsyncReturn Invoke(valuetype [FSharp.Core]Microsoft.FSharp.Control.AsyncActivation`1> ctxt) cil managed
{
.maxstack 8
@@ -326,8 +311,7 @@
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>>
{
.field static assembly initonly class assembly/todo2@37 @_instance
- .method assembly specialname rtspecialname
- instance void .ctor() cil managed
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
{
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
@@ -338,8 +322,7 @@
IL_0006: ret
}
- .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1>
- Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit unitVar) cil managed
+ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit unitVar) cil managed
{
.maxstack 6
@@ -369,8 +352,7 @@
IL_0037: ret
}
- .method private specialname rtspecialname static
- void .cctor() cil managed
+ .method private specialname rtspecialname static void .cctor() cil managed
{
.maxstack 10
@@ -413,8 +395,7 @@
}
- .method public specialname static class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1>
- get_todo1() cil managed
+ .method public specialname static class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> get_todo1() cil managed
{
.maxstack 8
@@ -422,8 +403,7 @@
IL_0005: ret
}
- .method assembly specialname static valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2
- get_matchValue@25() cil managed
+ .method assembly specialname static valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 get_matchValue@25() cil managed
{
.maxstack 8
@@ -431,8 +411,15 @@
IL_0005: ret
}
- .method public specialname static class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1>
- get_todo2() cil managed
+ .method assembly specialname static class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> get_computation@25() cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> ''.$assembly$fsx::computation@25
+ IL_0005: ret
+ }
+
+ .method public specialname static class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> get_todo2() cil managed
{
.maxstack 8
@@ -440,8 +427,7 @@
IL_0005: ret
}
- .method assembly specialname static valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2
- 'get_matchValue@44-1'() cil managed
+ .method assembly specialname static valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'get_matchValue@44-1'() cil managed
{
.maxstack 8
@@ -449,6 +435,14 @@
IL_0005: ret
}
+ .method assembly specialname static class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> 'get_computation@44-1'() cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> ''.$assembly$fsx::'computation@44-1'
+ IL_0005: ret
+ }
+
.property class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1>
todo1()
{
@@ -461,6 +455,12 @@
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 09 00 00 00 00 00 )
.get valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 assembly::get_matchValue@25()
}
+ .property class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1>
+ computation@25()
+ {
+ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 09 00 00 00 00 00 )
+ .get class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> assembly::get_computation@25()
+ }
.property class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1>
todo2()
{
@@ -473,6 +473,12 @@
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 09 00 00 00 00 00 )
.get valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 assembly::'get_matchValue@44-1'()
}
+ .property class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1>
+ 'computation@44-1'()
+ {
+ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 09 00 00 00 00 00 )
+ .get class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> assembly::'get_computation@44-1'()
+ }
}
.class private abstract auto ansi sealed ''.$assembly$fsx
@@ -482,16 +488,19 @@
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly initonly valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 matchValue@25
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
+ .field static assembly initonly class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> computation@25
+ .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly initonly class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> todo2@35
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly initonly valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 'matchValue@44-1'
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
+ .field static assembly initonly class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> 'computation@44-1'
+ .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly int32 init@
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
- .method private specialname rtspecialname static
- void .cctor() cil managed
+ .method private specialname rtspecialname static void .cctor() cil managed
{
.maxstack 5
@@ -505,48 +514,52 @@
IL_0018: callvirt instance class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1 [FSharp.Core]Microsoft.FSharp.Control.FSharpAsyncBuilder::Delay>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>)
IL_001d: stsfld class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> ''.$assembly$fsx::todo1@16
IL_0022: call class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> assembly::get_todo1()
- IL_0027: ldnull
- IL_0028: ldnull
- IL_0029: call !!0 [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync::RunSynchronously>(class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1,
+ IL_0027: stsfld class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> ''.$assembly$fsx::computation@25
+ IL_002c: call class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> assembly::get_computation@25()
+ IL_0031: ldnull
+ IL_0032: ldnull
+ IL_0033: call !!0 [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync::RunSynchronously>(class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1,
class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1,
class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1)
- IL_002e: stsfld valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::matchValue@25
- IL_0033: ldsflda valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::matchValue@25
- IL_0038: call instance int32 valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2::get_Tag()
- IL_003d: ldc.i4.1
- IL_003e: bne.un.s IL_0042
-
- IL_0040: br.s IL_0044
-
- IL_0042: br.s IL_0053
-
- IL_0044: ldsflda valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::matchValue@25
- IL_0049: call instance !1 valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2::get_ErrorValue()
- IL_004e: call void [runtime]System.Environment::Exit(int32)
- IL_0053: call class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsyncBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_DefaultAsyncBuilder()
- IL_0058: ldsfld class assembly/todo2@37 assembly/todo2@37::@_instance
- IL_005d: callvirt instance class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1 [FSharp.Core]Microsoft.FSharp.Control.FSharpAsyncBuilder::Delay>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>)
- IL_0062: stsfld class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> ''.$assembly$fsx::todo2@35
- IL_0067: call class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> assembly::get_todo2()
- IL_006c: ldnull
- IL_006d: ldnull
- IL_006e: call !!0 [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync::RunSynchronously>(class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1,
+ IL_0038: stsfld valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::matchValue@25
+ IL_003d: ldsflda valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::matchValue@25
+ IL_0042: call instance int32 valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2::get_Tag()
+ IL_0047: ldc.i4.1
+ IL_0048: bne.un.s IL_004c
+
+ IL_004a: br.s IL_004e
+
+ IL_004c: br.s IL_005d
+
+ IL_004e: ldsflda valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::matchValue@25
+ IL_0053: call instance !1 valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2::get_ErrorValue()
+ IL_0058: call void [runtime]System.Environment::Exit(int32)
+ IL_005d: call class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsyncBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_DefaultAsyncBuilder()
+ IL_0062: ldsfld class assembly/todo2@37 assembly/todo2@37::@_instance
+ IL_0067: callvirt instance class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1 [FSharp.Core]Microsoft.FSharp.Control.FSharpAsyncBuilder::Delay>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>)
+ IL_006c: stsfld class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> ''.$assembly$fsx::todo2@35
+ IL_0071: call class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> assembly::get_todo2()
+ IL_0076: stsfld class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> ''.$assembly$fsx::'computation@44-1'
+ IL_007b: call class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1> assembly::'get_computation@44-1'()
+ IL_0080: ldnull
+ IL_0081: ldnull
+ IL_0082: call !!0 [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync::RunSynchronously>(class [FSharp.Core]Microsoft.FSharp.Control.FSharpAsync`1,
class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1,
class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1)
- IL_0073: stsfld valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::'matchValue@44-1'
- IL_0078: ldsflda valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::'matchValue@44-1'
- IL_007d: call instance int32 valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2::get_Tag()
- IL_0082: ldc.i4.1
- IL_0083: bne.un.s IL_0087
+ IL_0087: stsfld valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::'matchValue@44-1'
+ IL_008c: ldsflda valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::'matchValue@44-1'
+ IL_0091: call instance int32 valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2::get_Tag()
+ IL_0096: ldc.i4.1
+ IL_0097: bne.un.s IL_009b
- IL_0085: br.s IL_0089
+ IL_0099: br.s IL_009d
- IL_0087: br.s IL_0098
+ IL_009b: br.s IL_00ac
- IL_0089: ldsflda valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::'matchValue@44-1'
- IL_008e: call instance !1 valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2::get_ErrorValue()
- IL_0093: call void [runtime]System.Environment::Exit(int32)
- IL_0098: ret
+ IL_009d: ldsflda valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2 ''.$assembly$fsx::'matchValue@44-1'
+ IL_00a2: call instance !1 valuetype [FSharp.Core]Microsoft.FSharp.Core.FSharpResult`2::get_ErrorValue()
+ IL_00a7: call void [runtime]System.Environment::Exit(int32)
+ IL_00ac: ret
}
}
@@ -555,3 +568,4 @@
+
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.support.added.later.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.support.added.later.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.support.added.later.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.support.added.later.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.support.added.later.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.support.added.later.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithLastOpenedTypeExtensions.fsx.support.added.later.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithLastOpenedTypeExtensions.fsx.support.added.later.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx.support.added.later.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx.support.added.later.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx.support.added.later.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx.support.added.later.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx.support.added.later.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx.support.added.later.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowWithTypeExtension.fsx.support.added.later.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowWithTypeExtension.fsx.support.added.later.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx.il.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx.support.added.later.err.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx.support.added.later.err.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx.support.added.later.err.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx.support.added.later.err.bsl
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx.support.added.later.il.bsl b/tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx.support.added.later.il.bsl
similarity index 100%
rename from tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/PropertyShadowing/ShadowingAndStillOkWithChainedCalls.fsx.support.added.later.il.bsl
rename to tests/FSharp.Compiler.ComponentTests/TypeChecks/TypeExtensions/Shadowing/ShadowingAndStillOkWithChainedCalls.fsx.support.added.later.il.bsl
diff --git a/tests/FSharp.Test.Utilities/Compiler.fs b/tests/FSharp.Test.Utilities/Compiler.fs
index c29d0958801..0f79fbcbad8 100644
--- a/tests/FSharp.Test.Utilities/Compiler.fs
+++ b/tests/FSharp.Test.Utilities/Compiler.fs
@@ -366,6 +366,10 @@ module rec Compiler =
let FSharp (source: string) : CompilationUnit =
Fs source
+ let FSharpWithFileName name (source: string) : CompilationUnit =
+ fsFromString (SourceCodeFileKind.Fs({FileName=name; SourceText=Some source }))
+ |> FS
+
let FsFromPath (path: string) : CompilationUnit =
fsFromString (SourceFromPath path)
|> FS
@@ -1362,12 +1366,13 @@ Actual:
if documents <> expectedDocuments then
failwith $"Expected documents are different from PDB.\nExpected: %A{expectedDocuments}\nActual: %A{documents}"
- let private verifyPdbOptions reader options =
+ let private verifyPdbOptions optOutputPath reader options =
+ let outputPath = Path.GetDirectoryName(optOutputPath |> Option.defaultValue ".")
for option in options do
match option with
| VerifyImportScopes scopes -> verifyPdbImportTables reader scopes
| VerifySequencePoints sp -> verifySequencePoints reader sp
- | VerifyDocuments docs -> verifyDocuments reader docs
+ | VerifyDocuments docs -> verifyDocuments reader (docs |> List.map(fun doc -> Path.Combine(outputPath, doc)))
| _ -> failwith $"Unknown verification option: {option.ToString()}"
let private verifyPortablePdb (result: CompilationOutput) options : unit =
@@ -1386,7 +1391,7 @@ Actual:
| _ -> failwith "Only F# compilations are supported when verifying PDBs."
verifyPdbFormat reader compilationType
- verifyPdbOptions reader options
+ verifyPdbOptions result.OutputPath reader options
| _ -> failwith "Output path is not set, please make sure compilation was successfull."
()
diff --git a/tests/FSharp.Test.Utilities/CompilerAssert.fs b/tests/FSharp.Test.Utilities/CompilerAssert.fs
index e7d56f247dd..a97b214acde 100644
--- a/tests/FSharp.Test.Utilities/CompilerAssert.fs
+++ b/tests/FSharp.Test.Utilities/CompilerAssert.fs
@@ -439,9 +439,10 @@ module rec CompilerAssertHelpers =
| Some text ->
// In memory source file copy it to the build directory
let source = item.ChangeExtension
- File.WriteAllText (source.GetSourceFileName, text)
- disposals.Add(disposeFile source.GetSourceFileName)
- yield source
+ let destFileName = Path.Combine(outputDirectory.FullName, Path.GetFileName(source.GetSourceFileName))
+ File.WriteAllText (destFileName, text)
+ disposals.Add(disposeFile destFileName)
+ yield source.WithFileName(destFileName)
| None ->
// On Disk file
let sourceFileName = item.GetSourceFileName
diff --git a/tests/service/ProjectAnalysisTests.fs b/tests/service/ProjectAnalysisTests.fs
index 901484b6a1c..b5324d5611b 100644
--- a/tests/service/ProjectAnalysisTests.fs
+++ b/tests/service/ProjectAnalysisTests.fs
@@ -5462,66 +5462,6 @@ type A(i:int) =
| Some decl -> failwithf "unexpected declaration %A" decl
| None -> failwith "declaration list is empty"
-[]
-// [] // Flaky, reenable when stable
-[]
-let ``TryGetRecentCheckResultsForFile called with snapshot returns cached result after ParseAndCheckFile`` useTransparentCompiler =
- let fileName1 = Path.ChangeExtension(tryCreateTemporaryFileName (), ".fs")
- let base2 = tryCreateTemporaryFileName ()
- let dllName = Path.ChangeExtension(base2, ".dll")
- let projFileName = Path.ChangeExtension(base2, ".fsproj")
- let fileSource1Text = """
-type A(i:int) =
- member x.Value = i
-"""
- let fileSource1 = SourceText.ofString fileSource1Text
- FileSystem.OpenFileForWriteShim(fileName1).Write(fileSource1Text)
-
- let fileNames = [|fileName1|]
- let args = mkProjectCommandLineArgs (dllName, [])
- let checker = FSharpChecker.Create(useTransparentCompiler=useTransparentCompiler)
- let options = { checker.GetProjectOptionsFromCommandLineArgs (projFileName, args) with SourceFiles = fileNames }
- let snapshot = FSharpProjectSnapshot.FromOptions(options, DocumentSource.FileSystem) |> Async.RunImmediate
-
- let rbefore = checker.TryGetRecentCheckResultsForFile(fileName1, snapshot)
- match rbefore with
- | Some(fileResults, checkFileResults) -> failwith "cached results before ParseAndCheckFileInProject was called"
- | None -> ()
-
- checker.ParseAndCheckFileInProject(fileName1, snapshot) |> Async.RunImmediate
- |> function
- | _, FSharpCheckFileAnswer.Succeeded(res) -> ()
- | _ -> failwithf "Parsing aborted unexpectedly..."
-
- let rafterCheckResults = checker.TryGetRecentCheckResultsForFile(fileName1, snapshot)
- match rafterCheckResults with
- | Some(fileResults, checkFileResults) -> ()
- | None -> failwith "no results from TryGetRecentCheckResultsForFile"
-
- let fileSource1TextEdited = """
-type A(i:int) =
- member x.Value = i
- member x.Value2 = 23
-"""
- let fileSource1Edited = SourceText.ofString fileSource1TextEdited
- FileSystem.OpenFileForWriteShim(fileName1).Write(fileSource1TextEdited)
- let snapshotAfterFileEdit = FSharpProjectSnapshot.FromOptions(options, DocumentSource.FileSystem) |> Async.RunImmediate
-
- let rafterEditBefore2ndCheckResults = checker.TryGetRecentCheckResultsForFile(fileName1, snapshotAfterFileEdit)
- match rafterEditBefore2ndCheckResults with
- | Some(fileResults, checkFileResults) -> failwith "stale cache results from TryGetRecentCheckResultsForFile after edit"
- | None -> ()
-
- checker.ParseAndCheckFileInProject(fileName1, snapshotAfterFileEdit) |> Async.RunImmediate
- |> function
- | _, FSharpCheckFileAnswer.Succeeded(res) -> ()
- | _ -> failwithf "Parsing aborted unexpectedly..."
-
- let rafterEditAfter2ndCheckResults = checker.TryGetRecentCheckResultsForFile(fileName1, snapshotAfterFileEdit)
- match rafterEditAfter2ndCheckResults with
- | Some(fileResults, checkFileResults) -> ()
- | None -> failwith "no results from TryGetRecentCheckResultsForFile"
-
[]
[]
[]
diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars.fs.bsl
index 8fbc4d9d76c..e59b33d951a 100644
--- a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars.fs.bsl
+++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars.fs.bsl
@@ -20,7 +20,7 @@ ImplFile
FillExpr (Const (Int32 41, (2,21--2,23)), None);
String (" = ", (2,25--2,32));
FillExpr (Const (Int32 6, (2,32--2,33)), None);
- String (" * 7", (2,35--2,43))], TripleQuote, (2,8--2,43)),
+ String (" * 7", (2,33--2,43))], TripleQuote, (2,8--2,43)),
(2,4--2,5), Yes (2,0--2,43), { LeadingKeyword = Let (2,0--2,3)
InlineKeyword = None
EqualsRange = Some (2,6--2,7) })],
diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars2.fs b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars2.fs
new file mode 100644
index 00000000000..d3eb8c7b5a1
--- /dev/null
+++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars2.fs
@@ -0,0 +1,2 @@
+
+$$$"""{{{5}}}"""
\ No newline at end of file
diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars2.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars2.fs.bsl
new file mode 100644
index 00000000000..152cb27e9b3
--- /dev/null
+++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars2.fs.bsl
@@ -0,0 +1,18 @@
+ImplFile
+ (ParsedImplFileInput
+ ("/root/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars2.fs",
+ false,
+ QualifiedNameOfFile
+ SynExprInterpolatedStringWithTripleQuoteMultipleDollars2, [], [],
+ [SynModuleOrNamespace
+ ([SynExprInterpolatedStringWithTripleQuoteMultipleDollars2], false,
+ AnonModule,
+ [Expr
+ (InterpolatedString
+ ([String ("", (2,0--2,9));
+ FillExpr (Const (Int32 5, (2,9--2,10)), None);
+ String ("", (2,10--2,16))], TripleQuote, (2,0--2,16)),
+ (2,0--2,16))], PreXmlDocEmpty, [], None, (2,0--2,16),
+ { LeadingKeyword = None })], (true, true),
+ { ConditionalDirectives = []
+ CodeComments = [] }, set []))