@@ -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
0 commit comments