Skip to content

Commit

Permalink
fix code pages
Browse files Browse the repository at this point in the history
  • Loading branch information
dsyme committed Jul 21, 2016
1 parent 6641950 commit c0cb261
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions src/fsharp/CompileOps.fs
Original file line number Diff line number Diff line change
Expand Up @@ -4821,7 +4821,7 @@ module private ScriptPreprocessClosure =
open Internal.Utilities.Text.Lexing

/// Represents an input to the closure finding process
type ClosureSource = ClosureSource of string * range * string // filename, range, source text
type ClosureSource = ClosureSource of filename: string * referenceRange: range * sourceText: string * parseRequired: bool

/// Represents an output of the closure finding process
type ClosureFile = ClosureFile of string * range * ParsedInput option * PhasedError list * PhasedError list * (string * range) list // filename, range, errors, warnings, nowarns
Expand Down Expand Up @@ -4880,7 +4880,7 @@ module private ScriptPreprocessClosure =
tcConfigB.implicitlyResolveAssemblies <- false
TcConfig.Create(tcConfigB,validate=true)

let ClosureSourceOfFilename(filename,m,inputCodePage:int option) =
let ClosureSourceOfFilename(filename,m,inputCodePage,parseRequired) =
try
let filename = FileSystem.GetFullPathShim(filename)
use stream = FileSystem.FileStreamReadShim filename
Expand All @@ -4889,7 +4889,7 @@ module private ScriptPreprocessClosure =
| None -> new StreamReader(stream,true)
| Some n -> new StreamReader(stream,Encoding.GetEncodingShim(n))
let source = reader.ReadToEnd()
[ClosureSource(filename,m,source)]
[ClosureSource(filename,m,source,parseRequired)]
with e ->
errorRecovery e m
[]
Expand Down Expand Up @@ -4917,11 +4917,11 @@ module private ScriptPreprocessClosure =
let tcConfig = ref tcConfig

let observedSources = Observed()
let rec loop (ClosureSource(filename,m,source)) =
let rec loop (ClosureSource(filename,m,source,parseRequired)) =
[ if not (observedSources.HaveSeen(filename)) then
observedSources.SetSeen(filename)
//printfn "visiting %s" filename
if IsScript(filename) then
if IsScript(filename) || parseRequired then
let errors = ref []
let warnings = ref []
let errorLogger =
Expand All @@ -4947,7 +4947,7 @@ module private ScriptPreprocessClosure =

for (m,subFile) in sources do
if IsScript(subFile) then
for subSource in ClosureSourceOfFilename(subFile,m,tcConfigResult.inputCodePage) do
for subSource in ClosureSourceOfFilename(subFile,m,tcConfigResult.inputCodePage,false) do
yield! loop subSource
else
yield ClosureFile(subFile, m, None, [], [], [])
Expand Down Expand Up @@ -5039,15 +5039,15 @@ module private ScriptPreprocessClosure =

let tcConfig = CreateScriptSourceTcConfig(filename,codeContext,useSimpleResolution,useFsiAuxLib,Some references0,applyCommmandLineArgs)

let closureSources = [ClosureSource(filename,range0,source)]
let closureSources = [ClosureSource(filename,range0,source,true)]
let closureFiles,tcConfig = FindClosureFiles(closureSources,tcConfig,codeContext,lexResourceManager)
GetLoadClosure(filename,closureFiles,tcConfig,codeContext)

/// Given source filename, find the full load closure
/// Used from fsi.fs and fsc.fs, for #load and command line
let GetFullClosureOfScriptFiles(tcConfig:TcConfig,files:(string*range) list,codeContext,_useDefaultScriptingReferences:bool,lexResourceManager:Lexhelp.LexResourceManager) =
let mainFile = fst (List.last files)
let closureSources = files |> List.map (fun (filename,m) -> ClosureSourceOfFilename(filename,m,tcConfig.inputCodePage)) |> List.concat
let closureSources = files |> List.map (fun (filename,m) -> ClosureSourceOfFilename(filename,m,tcConfig.inputCodePage,true)) |> List.concat
let closureFiles,tcConfig = FindClosureFiles(closureSources,tcConfig,codeContext,lexResourceManager)
GetLoadClosure(mainFile,closureFiles,tcConfig,codeContext)

Expand Down

0 comments on commit c0cb261

Please # to comment.