Skip to content

fsi variable is unavailable when parsing script files #227

@drvink

Description

@drvink

With FSAC 0.34.0 and F# 4.1.18 on Linux:

arch-vm[1353]:~% mono ~/.emacs.d/elpa/fsharp-mode-20170918.842/bin/fsautocomplete.exe -v
{"Kind":"info","Data":"Started (PID=109693)"}
parse "FsiBug.fsx"
do printfn "%A" fsi
<<EOF>>
{"Kind":"info","Data":"Background parsing started"}
{"Kind":"errors","Data":{"File":"/home/mdl/FsiBug.fsx","Errors":[{"FileName":"/home/mdl/FsiBug.fsx","StartLine":1,"EndLine":1,"StartColumn":17,"EndColumn":20,"Severity":"Error","Message":"The value or constructor 'fsi' is not defined. Maybe you want one of the following:\n   fst","Subcategory":"typecheck"}]}}
parse "FsiBug2.fsx"
#r @"/usr/lib/mono/fsharp/FSharp.Compiler.Interactive.Settings.dll"
do printfn "%A" fsi
<<EOF>>
{"Kind":"info","Data":"Background parsing started"}
{"Kind":"errors","Data":{"File":"/home/mdl/FsiBug2.fsx","Errors":[]}}

Notice that it works if you explicitly reference FSharp.Compiler.Interactive.Settings.dll--but you should not have to do this. With the same version of FSAC running on the CLR on Windows, FsiBug.fsx parses fine, which is the correct/expected behavior.

Mono version info, just in case it's useful:

arch-vm[1002]:~% mono --version
Mono JIT compiler version 5.7.0 (master/5825342717c Mon Oct  2 17:12:43 JST 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       normal
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen (concurrent by default)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions