@@ -3727,34 +3727,60 @@ type FsiInteractionProcessor
37273727 /// Partially process a hash directive, leaving state in packageManagerLines and required assemblies
37283728 let PartiallyProcessHashDirective ( ctok , istate , hash , diagnosticsLogger : DiagnosticsLogger ) =
37293729 match hash with
3730- | ParsedHashDirective( " load" , ParsedHashDirectiveArguments sourceFiles, m) ->
3730+ | ParsedHashDirective( " load" , hashArguments, m) ->
3731+ let sourceFiles = parsedHashDirectiveArguments hashArguments tcConfigB.langVersion
3732+
37313733 let istate =
37323734 fsiDynamicCompiler.EvalSourceFiles( ctok, istate, m, sourceFiles, lexResourceManager, diagnosticsLogger)
37333735
37343736 istate, Completed None
37353737
3736- | ParsedHashDirective(( " reference" | " r" ), ParsedHashDirectiveStringArguments [ path ], m) ->
3738+ | ParsedHashDirective(( " reference" | " r" ), hashArguments, m) ->
3739+ let path =
3740+ ( parsedHashDirectiveStringArguments hashArguments tcConfigB.langVersion)
3741+ |> List.head
3742+
37373743 fsiDynamicCompiler.PartiallyProcessReferenceOrPackageIncudePathDirective( ctok, istate, Directive.Resolution, path, true , m)
37383744
3739- | ParsedHashDirective( " i" , ParsedHashDirectiveStringArguments [ path ], m) ->
3745+ | ParsedHashDirective( " i" , hashArguments, m) ->
3746+ let path =
3747+ ( parsedHashDirectiveStringArguments hashArguments tcConfigB.langVersion)
3748+ |> List.head
3749+
37403750 fsiDynamicCompiler.PartiallyProcessReferenceOrPackageIncudePathDirective( ctok, istate, Directive.Include, path, true , m)
37413751
3742- | ParsedHashDirective( " I" , ParsedHashDirectiveStringArguments [ path ], m) ->
3752+ | ParsedHashDirective( " I" , hashArguments, m) ->
3753+ let path =
3754+ ( parsedHashDirectiveStringArguments hashArguments tcConfigB.langVersion)
3755+ |> List.head
3756+
37433757 tcConfigB.AddIncludePath( m, path, tcConfigB.implicitIncludeDir)
37443758 let tcConfig = TcConfig.Create( tcConfigB, validate = false )
37453759 fsiConsoleOutput.uprintnfnn " %s " ( FSIstrings.SR.fsiDidAHashI ( tcConfig.MakePathAbsolute path))
37463760 istate, Completed None
37473761
3748- | ParsedHashDirective( " cd" , ParsedHashDirectiveStringArguments [ path ], m) ->
3762+ | ParsedHashDirective( " cd" , hashArguments, m) ->
3763+ let path =
3764+ ( parsedHashDirectiveStringArguments hashArguments tcConfigB.langVersion)
3765+ |> List.head
3766+
37493767 ChangeDirectory path m
37503768 istate, Completed None
37513769
3752- | ParsedHashDirective( " silentCd" , ParsedHashDirectiveStringArguments [ path ], m) ->
3770+ | ParsedHashDirective( " silentCd" , hashArguments, m) ->
3771+ let path =
3772+ ( parsedHashDirectiveStringArguments hashArguments tcConfigB.langVersion)
3773+ |> List.head
3774+
37533775 ChangeDirectory path m
37543776 fsiConsolePrompt.SkipNext() (* "silent" directive *)
37553777 istate, Completed None
37563778
3757- | ParsedHashDirective( " interactiveprompt" , ParsedHashDirectiveArguments [ " show" | " hide" | " skip" as showPrompt ], m) ->
3779+ | ParsedHashDirective( " interactiveprompt" , hashArguments, m) ->
3780+ let showPrompt =
3781+ ( parsedHashDirectiveStringArguments hashArguments tcConfigB.langVersion)
3782+ |> List.head
3783+
37583784 match showPrompt with
37593785 | " show" -> fsiConsolePrompt.ShowPrompt <- true
37603786 | " hide" -> fsiConsolePrompt.ShowPrompt <- false
@@ -3780,7 +3806,10 @@ type FsiInteractionProcessor
37803806
37813807 istate, Completed None
37823808
3783- | ParsedHashDirective( " time" , ParsedHashDirectiveArguments [ " on" | " off" as v ], _) ->
3809+ | ParsedHashDirective( " time" , hashArguments, _) ->
3810+ let v =
3811+ ( parsedHashDirectiveArguments hashArguments tcConfigB.langVersion) |> List.head
3812+
37843813 if v <> " on" then
37853814 fsiConsoleOutput.uprintnfnn " %s " ( FSIstrings.SR.fsiTurnedTimingOff ())
37863815 else
@@ -3789,7 +3818,8 @@ type FsiInteractionProcessor
37893818 let istate = { istate with timing = ( v = " on" ) }
37903819 istate, Completed None
37913820
3792- | ParsedHashDirective( " nowarn" , ParsedHashDirectiveArguments numbers, m) ->
3821+ | ParsedHashDirective( " nowarn" , hashArguments, m) ->
3822+ let numbers = ( parsedHashDirectiveArguments hashArguments tcConfigB.langVersion)
37933823 List.iter ( fun ( d : string ) -> tcConfigB.TurnWarningOff( m, d)) numbers
37943824 istate, Completed None
37953825
@@ -3820,7 +3850,8 @@ type FsiInteractionProcessor
38203850 fsiOptions.ShowHelp( m)
38213851 istate, Completed None
38223852
3823- | ParsedHashDirective( c, ParsedHashDirectiveArguments arg, m) ->
3853+ | ParsedHashDirective( c, hashArguments, m) ->
3854+ let arg = ( parsedHashDirectiveArguments hashArguments tcConfigB.langVersion)
38243855 warning ( Error(( FSComp.SR.fsiInvalidDirective ( c, String.concat " " arg)), m))
38253856 istate, Completed None
38263857
0 commit comments