@@ -413,8 +413,6 @@ type TcConfigBuilder =
413413 mutable pathMap : PathMap
414414
415415 mutable langVersion : LanguageVersion
416-
417- mutable dependencyProvider: DependencyProvider
418416 }
419417
420418 static member Initial : TcConfigBuilder
@@ -443,6 +441,9 @@ type TcConfigBuilder =
443441
444442 static member SplitCommandLineResourceInfo : string -> string * string * ILResourceAccess
445443
444+ // Directories to start probing in for native DLLs for FSI dynamic loading
445+ member GetNativeProbingRoots : unit -> seq < string >
446+
446447[< Sealed >]
447448// Immutable TcConfig
448449type TcConfig =
@@ -559,8 +560,8 @@ type TcConfig =
559560 member isInteractive : bool
560561 member isInvalidationSupported : bool
561562
562-
563563 member ComputeLightSyntaxInitialStatus : string -> bool
564+
564565 member GetTargetFrameworkDirectories : unit -> string list
565566
566567 /// Get the loaded sources that exist and issue a warning for the ones that don't
@@ -575,8 +576,11 @@ type TcConfig =
575576 member MakePathAbsolute : string -> string
576577
577578 member copyFSharpCore : CopyFSharpCoreFlag
579+
578580 member shadowCopyReferences : bool
581+
579582 member useSdkRefs : bool
583+
580584 member langVersion : LanguageVersion
581585
582586 static member Create : TcConfigBuilder * validate : bool -> TcConfig
@@ -640,18 +644,28 @@ type TcImports =
640644 interface System.IDisposable
641645 //new: TcImports option -> TcImports
642646 member DllTable : NameMap < ImportedBinary > with get
647+
643648 member GetImportedAssemblies : unit -> ImportedAssembly list
649+
644650 member GetCcusInDeclOrder : unit -> CcuThunk list
651+
645652 /// This excludes any framework imports (which may be shared between multiple builds)
646653 member GetCcusExcludingBase : unit -> CcuThunk list
654+
647655 member FindDllInfo : CompilationThreadToken * range * string -> ImportedBinary
656+
648657 member TryFindDllInfo : CompilationThreadToken * range * string * lookupOnly : bool -> option < ImportedBinary >
658+
649659 member FindCcuFromAssemblyRef : CompilationThreadToken * range * ILAssemblyRef -> CcuResolutionResult
660+
650661#if ! NO_EXTENSIONTYPING
651662 member ProviderGeneratedTypeRoots : ProviderGeneratedType list
652663#endif
664+
653665 member GetImportMap : unit -> Import.ImportMap
654666
667+ member DependencyProvider : DependencyProvider
668+
655669 /// Try to resolve a referenced assembly based on TcConfig settings.
656670 member TryResolveAssemblyReference : CompilationThreadToken * AssemblyReference * ResolveAssemblyReferenceMode -> OperationResult < AssemblyResolution list >
657671
@@ -671,13 +685,33 @@ type TcImports =
671685#endif
672686 /// Report unresolved references that also weren't consumed by any type providers.
673687 member ReportUnresolvedAssemblyReferences : UnresolvedAssemblyReference list -> unit
688+
674689 member SystemRuntimeContainsType : string -> bool
675690
676691 member internal Base : TcImports option
677692
678- static member BuildFrameworkTcImports : CompilationThreadToken * TcConfigProvider * AssemblyResolution list * AssemblyResolution list -> Cancellable < TcGlobals * TcImports >
679- static member BuildNonFrameworkTcImports : CompilationThreadToken * TcConfigProvider * TcGlobals * TcImports * AssemblyResolution list * UnresolvedAssemblyReference list -> Cancellable < TcImports >
680- static member BuildTcImports : CompilationThreadToken * TcConfigProvider -> Cancellable < TcGlobals * TcImports >
693+ static member BuildFrameworkTcImports :
694+ CompilationThreadToken *
695+ TcConfigProvider *
696+ AssemblyResolution list *
697+ AssemblyResolution list
698+ -> Cancellable < TcGlobals * TcImports >
699+
700+ static member BuildNonFrameworkTcImports :
701+ CompilationThreadToken *
702+ TcConfigProvider *
703+ TcGlobals *
704+ TcImports *
705+ AssemblyResolution list *
706+ UnresolvedAssemblyReference list *
707+ DependencyProvider
708+ -> Cancellable < TcImports >
709+
710+ static member BuildTcImports :
711+ CompilationThreadToken *
712+ TcConfigProvider *
713+ DependencyProvider
714+ -> Cancellable < TcGlobals * TcImports >
681715
682716//----------------------------------------------------------------------------
683717// Special resources in DLLs
@@ -703,24 +737,22 @@ val WriteOptimizationData: TcGlobals * filename: string * inMem: bool * CcuThunk
703737// #r and other directives
704738//--------------------------------------------------------------------------
705739
706- //----------------------------------------------------------------------------
707- // #r and other directives
708- //--------------------------------------------------------------------------
709-
710740/// Process #r in F # Interactive.
711741/// Adds the reference to the tcImports and add the ccu to the type checking environment.
712742val RequireDLL : CompilationThreadToken * TcImports * TcEnv * thisAssemblyName : string * referenceRange : range * file : string -> TcEnv * ( ImportedBinary list * ImportedAssembly list )
713743
714- /// Processing # commands
744+ /// A general routine to process hash directives
715745val ProcessMetaCommandsFromInput :
716- (( 'T -> range * string -> 'T ) * ( 'T -> range * string -> 'T ) * ( 'T -> IDependencyManagerProvider * Directive * range * string -> 'T ) * ( 'T -> range * string -> unit ))
717- -> TcConfigBuilder * ParsedInput * string * 'T
718- -> 'T
746+ (( 'T -> range * string -> 'T ) *
747+ ( 'T -> range * string * Directive -> 'T ) *
748+ ( 'T -> range * string -> unit ))
749+ -> TcConfigBuilder * ParsedInput * string * 'T
750+ -> 'T
719751
720- /// Process all the #r , #I etc. in an input
721- val ApplyMetaCommandsFromInputToTcConfig : TcConfig * ParsedInput * string -> TcConfig
752+ /// Process all the #r , #I etc. in an input. For non - scripts report warnings about ignored directives.
753+ val ApplyMetaCommandsFromInputToTcConfig : TcConfig * ParsedInput * string * DependencyProvider -> TcConfig
722754
723- /// Process the #nowarn in an input
755+ /// Process the #nowarn in an input and integrate them into the TcConfig
724756val ApplyNoWarnsToTcConfig : TcConfig * ParsedInput * string -> TcConfig
725757
726758//----------------------------------------------------------------------------
@@ -827,6 +859,9 @@ type LoadClosure =
827859 /// The resolved references along with the ranges of the #r positions in each file.
828860 References: ( string * AssemblyResolution list ) list
829861
862+ /// The resolved pacakge references along with the ranges of the #r positions in each file.
863+ PackageReferences: ( range * string list )[]
864+
830865 /// The list of references that were not resolved during load closure.
831866 UnresolvedReferences: UnresolvedAssemblyReference list
832867
@@ -853,8 +888,31 @@ type LoadClosure =
853888 //
854889 /// A temporary TcConfig is created along the way, is why this routine takes so many arguments. We want to be sure to use exactly the
855890 /// same arguments as the rest of the application.
856- static member ComputeClosureOfScriptText : CompilationThreadToken * legacyReferenceResolver : ReferenceResolver.Resolver * defaultFSharpBinariesDir : string * filename : string * sourceText : ISourceText * implicitDefines : CodeContext * useSimpleResolution : bool * useFsiAuxLib : bool * useSdkRefs : bool * lexResourceManager : Lexhelp.LexResourceManager * applyCompilerOptions : ( TcConfigBuilder -> unit ) * assumeDotNetFramework : bool * tryGetMetadataSnapshot : ILReaderTryGetMetadataSnapshot * reduceMemoryUsage : ReduceMemoryFlag -> LoadClosure
891+ static member ComputeClosureOfScriptText :
892+ CompilationThreadToken *
893+ legacyReferenceResolver : ReferenceResolver.Resolver *
894+ defaultFSharpBinariesDir : string *
895+ filename : string *
896+ sourceText : ISourceText *
897+ implicitDefines : CodeContext *
898+ useSimpleResolution : bool *
899+ useFsiAuxLib : bool *
900+ useSdkRefs : bool *
901+ lexResourceManager : Lexhelp.LexResourceManager *
902+ applyCompilerOptions : ( TcConfigBuilder -> unit ) *
903+ assumeDotNetFramework : bool *
904+ tryGetMetadataSnapshot : ILReaderTryGetMetadataSnapshot *
905+ reduceMemoryUsage : ReduceMemoryFlag *
906+ dependencyProvider : DependencyProvider
907+ -> LoadClosure
857908
858909 /// Analyze a set of script files and find the closure of their references. The resulting references are then added to the given TcConfig.
859910 /// Used from fsi.fs and fsc.fs , for #load and command line.
860- static member ComputeClosureOfScriptFiles : CompilationThreadToken * tcConfig : TcConfig * ( string * range ) list * implicitDefines : CodeContext * lexResourceManager : Lexhelp.LexResourceManager -> LoadClosure
911+ static member ComputeClosureOfScriptFiles :
912+ CompilationThreadToken *
913+ tcConfig : TcConfig *
914+ ( string * range ) list *
915+ implicitDefines : CodeContext *
916+ lexResourceManager : Lexhelp.LexResourceManager *
917+ dependencyProvider : DependencyProvider
918+ -> LoadClosure
0 commit comments