Skip to content

Commit 08eccbb

Browse files
KevinRansombaronfel
authored andcommitted
Merge pull request #8469 from dotnet/merges/master-to-feature/and-bang
Merge master to feature/and-bang
2 parents af648f3 + 3cefbba commit 08eccbb

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

src/fsharp/AttributeChecking.fs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,10 @@ let private CheckILAttributes (g: TcGlobals) isByrefLikeTyconRef cattrs m =
265265
| _ ->
266266
CompleteD
267267

268+
let langVersionPrefix = "--langversion:preview"
269+
268270
/// Check F# attributes for 'ObsoleteAttribute', 'CompilerMessageAttribute' and 'ExperimentalAttribute',
269271
/// returning errors and warnings as data
270-
let langVersionPrefix = "--langversion:preview"
271272
let CheckFSharpAttributes (g:TcGlobals) attribs m =
272273
let isExperimentalAttributeDisabled (s:string) =
273274
if g.compilingFslib then

src/fsharp/service/service.fs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ type BackgroundCompiler(legacyReferenceResolver, projectCacheSize, keepAssemblyC
742742
member bc.ParseAndCheckProject(options, userOpName) =
743743
reactor.EnqueueAndAwaitOpAsync(userOpName, "ParseAndCheckProject", options.ProjectFileName, fun ctok -> bc.ParseAndCheckProjectImpl(options, ctok, userOpName))
744744

745-
member __.GetProjectOptionsFromScript(filename, sourceText, loadedTimeStamp, otherFlags, useFsiAuxLib: bool option, useSdkRefs: bool option, assumeDotNetFramework: bool option, extraProjectInfo: obj option, optionsStamp: int64 option, userOpName) =
745+
member __.GetProjectOptionsFromScript(filename, sourceText, previewEnabled, loadedTimeStamp, otherFlags, useFsiAuxLib: bool option, useSdkRefs: bool option, assumeDotNetFramework: bool option, extraProjectInfo: obj option, optionsStamp: int64 option, userOpName) =
746746
reactor.EnqueueAndAwaitOpAsync (userOpName, "GetProjectOptionsFromScript", filename, fun ctok ->
747747
cancellable {
748748
use errors = new ErrorScope()
@@ -751,10 +751,16 @@ type BackgroundCompiler(legacyReferenceResolver, projectCacheSize, keepAssemblyC
751751
let useFsiAuxLib = defaultArg useFsiAuxLib true
752752
let useSdkRefs = defaultArg useSdkRefs true
753753
let reduceMemoryUsage = ReduceMemoryFlag.Yes
754+
let previewEnabled = defaultArg previewEnabled false
754755

755756
// Do we assume .NET Framework references for scripts?
756757
let assumeDotNetFramework = defaultArg assumeDotNetFramework true
757-
let otherFlags = defaultArg otherFlags [| |]
758+
let extraFlags =
759+
if previewEnabled then
760+
[| "--langversion:preview" |]
761+
else
762+
[||]
763+
let otherFlags = defaultArg otherFlags extraFlags
758764
let useSimpleResolution =
759765
#if ENABLE_MONO_SUPPORT
760766
runningOnMono || otherFlags |> Array.exists (fun x -> x = "--simpleresolution")
@@ -1141,9 +1147,9 @@ type FSharpChecker(legacyReferenceResolver,
11411147
backgroundCompiler.ParseAndCheckProject(options, userOpName)
11421148

11431149
/// For a given script file, get the ProjectOptions implied by the #load closure
1144-
member __.GetProjectOptionsFromScript(filename, source, ?loadedTimeStamp, ?otherFlags, ?useFsiAuxLib, ?useSdkRefs, ?assumeDotNetFramework, ?extraProjectInfo: obj, ?optionsStamp: int64, ?userOpName: string) =
1150+
member __.GetProjectOptionsFromScript(filename, source, ?previewEnabled, ?loadedTimeStamp, ?otherFlags, ?useFsiAuxLib, ?useSdkRefs, ?assumeDotNetFramework, ?extraProjectInfo: obj, ?optionsStamp: int64, ?userOpName: string) =
11451151
let userOpName = defaultArg userOpName "Unknown"
1146-
backgroundCompiler.GetProjectOptionsFromScript(filename, source, loadedTimeStamp, otherFlags, useFsiAuxLib, useSdkRefs, assumeDotNetFramework, extraProjectInfo, optionsStamp, userOpName)
1152+
backgroundCompiler.GetProjectOptionsFromScript(filename, source, previewEnabled, loadedTimeStamp, otherFlags, useFsiAuxLib, useSdkRefs, assumeDotNetFramework, extraProjectInfo, optionsStamp, userOpName)
11471153

11481154
member __.GetProjectOptionsFromCommandLineArgs(projectFileName, argv, ?loadedTimeStamp, ?extraProjectInfo: obj) =
11491155
let loadedTimeStamp = defaultArg loadedTimeStamp DateTime.MaxValue // Not 'now', we don't want to force reloading

src/fsharp/service/service.fsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ type public FSharpChecker =
228228
/// so that an 'unload' and 'reload' action will cause the script to be considered as a new project,
229229
/// so that references are re-resolved.</param>
230230
/// <param name="userOpName">An optional string used for tracing compiler operations associated with this request.</param>
231-
member GetProjectOptionsFromScript : filename: string * sourceText: ISourceText * ?loadedTimeStamp: DateTime * ?otherFlags: string[] * ?useFsiAuxLib: bool * ?useSdkRefs: bool * ?assumeDotNetFramework: bool * ?extraProjectInfo: obj * ?optionsStamp: int64 * ?userOpName: string -> Async<FSharpProjectOptions * FSharpErrorInfo list>
231+
member GetProjectOptionsFromScript : filename: string * sourceText: ISourceText * ?previewEnabled:bool * ?loadedTimeStamp: DateTime * ?otherFlags: string[] * ?useFsiAuxLib: bool * ?useSdkRefs: bool * ?assumeDotNetFramework: bool * ?extraProjectInfo: obj * ?optionsStamp: int64 * ?userOpName: string -> Async<FSharpProjectOptions * FSharpErrorInfo list>
232232

233233
/// <summary>
234234
/// <para>Get the FSharpProjectOptions implied by a set of command line arguments.</para>

0 commit comments

Comments
 (0)