diff --git a/main/external/fsharpbinding/MonoDevelop.FSharp.Shared/FSharpSymbolHelper.fs b/main/external/fsharpbinding/MonoDevelop.FSharp.Shared/FSharpSymbolHelper.fs
index 63e7e1a947f..cd0f97afc4b 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharp.Shared/FSharpSymbolHelper.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharp.Shared/FSharpSymbolHelper.fs
@@ -413,7 +413,7 @@ module SymbolTooltips =
let functionName =
let name =
if func.IsConstructor then
- match func.EnclosingEntity with
+ match func.DeclaringEntity with
| Some ent -> ent.DisplayName
| _ ->
//LoggingService.LogWarning(sprintf "getFuncSignatureWithFormat: No enclosing entity found for: %s" func.DisplayName)
@@ -433,7 +433,7 @@ module SymbolTooltips =
let modifier =
//F# types are prefixed with new, should non F# types be too for consistancy?
if func.IsConstructor then
- match func.EnclosingEntity with
+ match func.DeclaringEntity with
| Some ent -> if ent.IsFSharp then "new" ++ accessibility
else accessibility
| _ ->
@@ -488,7 +488,7 @@ module SymbolTooltips =
| _ -> indent + name.PadRight padding + ":"
let isDelegate =
- match func.EnclosingEntity with
+ match func.DeclaringEntity with
| Some ent -> ent.IsDelegate
| _ ->
//LoggingService.logWarning "getFuncSignatureWithFormat: No enclosing entity found for: %s" func.DisplayName
@@ -616,7 +616,7 @@ module SymbolTooltips =
let getAPCaseSignature displayContext (apc:FSharpActivePatternCase) =
let findVal =
- apc.Group.EnclosingEntity
+ apc.Group.DeclaringEntity
|> Option.bind (fun ent -> ent.MembersFunctionsAndValues
|> Seq.tryFind (fun func -> func.DisplayName.Contains apc.DisplayName)
|> Option.map (getFuncSignature displayContext))
@@ -652,7 +652,7 @@ module SymbolTooltips =
| ActivePatternCase ap ->
let parent =
- ap.Group.EnclosingEntity
+ ap.Group.DeclaringEntity
|> Option.map (fun enclosing -> enclosing.UnAnnotate().DisplayName)
|> Option.fill "None"
sprintf "From type:\t%s%sAssembly:\t%s" parent Environment.NewLine ap.Assembly.SimpleName
@@ -673,7 +673,7 @@ module SymbolTooltips =
None
| Constructor func ->
- match func.EnclosingEntity with
+ match func.DeclaringEntity with
| Some ent when ent.IsValueType || ent.IsEnum ->
//ValueTypes
let signature = getFuncSignature symbol.DisplayContext func
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharp.Shared/MonoDevelop.FSharp.Shared.fsproj b/main/external/fsharpbinding/MonoDevelop.FSharp.Shared/MonoDevelop.FSharp.Shared.fsproj
index deb2d5910e0..2c88e51f09f 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharp.Shared/MonoDevelop.FSharp.Shared.fsproj
+++ b/main/external/fsharpbinding/MonoDevelop.FSharp.Shared/MonoDevelop.FSharp.Shared.fsproj
@@ -1,4 +1,6 @@
+
+
Debug
@@ -74,6 +76,15 @@
+
+ True
+
+
+ True
+
+
+ True
+
..\packages\FSharp.Compiler.Service\lib\net45\FSharp.Compiler.Service.dll
True
@@ -93,6 +104,28 @@
+
+
+
+
+ ..\packages\Microsoft.DiaSymReader\lib\net20\Microsoft.DiaSymReader.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\packages\Microsoft.DiaSymReader.PortablePdb\lib\net45\Microsoft.DiaSymReader.PortablePdb.dll
+ True
+ True
+
+
+
+
@@ -115,11 +148,20 @@
+
+
+
+
+ True
+
+
+
+
- ..\packages\System.ValueTuple\lib\netstandard1.0\System.ValueTuple.dll
+ ..\packages\System.ValueTuple\lib\net461\System.ValueTuple.dll
True
True
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharp.Tests/MonoDevelop.FSharp.Tests.fsproj b/main/external/fsharpbinding/MonoDevelop.FSharp.Tests/MonoDevelop.FSharp.Tests.fsproj
index 6dd457cc906..8151c272483 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharp.Tests/MonoDevelop.FSharp.Tests.fsproj
+++ b/main/external/fsharpbinding/MonoDevelop.FSharp.Tests/MonoDevelop.FSharp.Tests.fsproj
@@ -1,5 +1,6 @@
+
Debug
@@ -233,6 +234,15 @@
+
+ True
+
+
+ True
+
+
+ True
+
..\packages\FSharp.Compiler.Service\lib\net45\FSharp.Compiler.Service.dll
True
@@ -252,6 +262,28 @@
+
+
+
+
+ ..\packages\Microsoft.DiaSymReader\lib\net20\Microsoft.DiaSymReader.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\packages\Microsoft.DiaSymReader.PortablePdb\lib\net45\Microsoft.DiaSymReader.PortablePdb.dll
+ True
+ True
+
+
+
+
@@ -311,6 +343,15 @@
+
+
+
+
+ True
+
+
+
+
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpSyntaxMode.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpSyntaxMode.fs
index a8ad8ff8d5f..688ad63a5c9 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpSyntaxMode.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpSyntaxMode.fs
@@ -153,7 +153,7 @@ module Patterns =
| IdentifierSymbol symbolUse ->
match symbolUse with
| SymbolUse.Val v ->
- let isMut = v.IsMutable && (match v.EnclosingEntity with Some de -> not de.IsEnum | None -> v.IsMutable)
+ let isMut = v.IsMutable && (match v.DeclaringEntity with Some de -> not de.IsEnum | None -> v.IsMutable)
Some isMut
| _ -> None
| _ -> None
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpTextEditorCompletion.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpTextEditorCompletion.fs
index 76e815c7f62..c70c17dda8b 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpTextEditorCompletion.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpTextEditorCompletion.fs
@@ -269,20 +269,20 @@ module Completion =
try
match symbolUse with
| SymbolUse.Constructor c ->
- c.EnclosingEntity
+ c.DeclaringEntity
|> Option.map (fun ent -> let un = ent.UnAnnotate()
un.DisplayName, un)
| SymbolUse.Event ev ->
- ev.EnclosingEntity
+ ev.DeclaringEntity
|> Option.map (fun ent -> let un = ent.UnAnnotate()
un.DisplayName, un)
| SymbolUse.Property pr ->
- pr.EnclosingEntity
+ pr.DeclaringEntity
|> Option.map (fun ent -> let un = ent.UnAnnotate()
un.DisplayName, un)
| SymbolUse.ActivePatternCase ap ->
if ap.Group.Names.Count > 1 then
- ap.Group.EnclosingEntity
+ ap.Group.DeclaringEntity
|> Option.map (fun enclosing -> let un = enclosing.UnAnnotate()
un.DisplayName, un)
else None
@@ -293,22 +293,22 @@ module Completion =
else None
| SymbolUse.Function f ->
if f.IsExtensionMember then
- let real = f.LogicalEnclosingEntity.UnAnnotate()
+ let real = f.ApparentEnclosingEntity.UnAnnotate()
Some(real.DisplayName, real)
else
- f.EnclosingEntity
+ f.DeclaringEntity
|> Option.map (fun real -> let un = real.UnAnnotate()
un.DisplayName, un)
| SymbolUse.Operator o ->
- o.EnclosingEntity
+ o.DeclaringEntity
|> Option.map (fun ent -> let un = ent.UnAnnotate()
un.DisplayName, un)
| SymbolUse.Pattern p ->
- p.EnclosingEntity
+ p.DeclaringEntity
|> Option.map (fun ent -> let un = ent.UnAnnotate()
un.DisplayName, ent)
| SymbolUse.Val v ->
- v.EnclosingEntity
+ v.DeclaringEntity
|> Option.map (fun ent -> let un = ent.UnAnnotate()
un.DisplayName, un)
| SymbolUse.TypeAbbreviation ta ->
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpUnitTestTextEditorExtension.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpUnitTestTextEditorExtension.fs
index 2334b2b4453..71097e2d33e 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpUnitTestTextEditorExtension.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpUnitTestTextEditorExtension.fs
@@ -60,7 +60,7 @@ module unitTestGatherer =
match symbolUse.Symbol with
| :? FSharpMemberOrFunctionOrValue as func ->
let typeName =
- match func.EnclosingEntity with
+ match func.DeclaringEntity with
| Some ent -> ent.QualifiedName
| None _ ->
MonoDevelop.Core.LoggingService.LogWarning(sprintf "F# GatherUnitTests: found a unit test method with no qualified name: %s" func.FullName)
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.fsproj b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.fsproj
index bd94aa21a56..0003baa0ced 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.fsproj
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.fsproj
@@ -1,4 +1,6 @@
+
+
Debug
@@ -281,7 +283,29 @@
..\packages\FSharp.Core\lib\net45\FSharp.Core.dll
- True
+ false
+ True
+
+
+
+
+
+
+
+
+ ..\packages\Microsoft.DiaSymReader\lib\net20\Microsoft.DiaSymReader.dll
+ false
+ True
+
+
+
+
+
+
+
+
+ ..\packages\Microsoft.DiaSymReader.PortablePdb\lib\net45\Microsoft.DiaSymReader.PortablePdb.dll
+ false
True
@@ -379,11 +403,20 @@
+
+
+
+
+ True
+
+
+
+
- ..\packages\System.ValueTuple\lib\netstandard1.0\System.ValueTuple.dll
+ ..\packages\System.ValueTuple\lib\net461\System.ValueTuple.dll
false
True
@@ -391,4 +424,4 @@
-
\ No newline at end of file
+
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/ProjectSearchCategory.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/ProjectSearchCategory.fs
index 7d4726c0173..d210024e1d6 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/ProjectSearchCategory.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/ProjectSearchCategory.fs
@@ -78,7 +78,7 @@ module Search =
let correctDisplayName (symbol:FSharpSymbolUse) =
match symbol with
| SymbolUse.Constructor c ->
- match c.EnclosingEntity with
+ match c.DeclaringEntity with
| Some ent -> ent.DisplayName
| _ -> LoggingService.LogError(sprintf "Constructor with no EnclosingEntity: %s" c.DisplayName)
c.DisplayName
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/RefactoringOperationsHandler.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/RefactoringOperationsHandler.fs
index 366e8464ff8..23137ba966b 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/RefactoringOperationsHandler.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/RefactoringOperationsHandler.fs
@@ -101,7 +101,7 @@ module Refactoring =
match symbolUse.Symbol with
| :? FSharpMemberOrFunctionOrValue as mfv when mfv.IsDispatchSlot ->
maybe {
- let! ent = mfv.EnclosingEntity
+ let! ent = mfv.DeclaringEntity
let! bt = ent.BaseType
if bt.HasTypeDefinition then
let baseDefs = bt.TypeDefinition.MembersFunctionsAndValues
@@ -391,7 +391,7 @@ module Refactoring =
match symbolUse.Symbol with
| :? FSharpMemberOrFunctionOrValue as mfv when mfv.IsDispatchSlot ->
maybe {
- let! ent = mfv.EnclosingEntity
+ let! ent = mfv.DeclaringEntity
let! bt = ent.BaseType
return bt.HasTypeDefinition } |> Option.getOrElse (fun () -> false)
@@ -500,7 +500,7 @@ type CurrentRefactoringOperationsHandler() =
| :? FSharpEntity ->
GettextCatalog.GetString ("Go to _Base Type")
| :? FSharpMemberOrFunctionOrValue as mfv ->
- match mfv.EnclosingEntity with
+ match mfv.DeclaringEntity with
| Some ent when ent.IsInterface ->
if mfv.IsProperty then GettextCatalog.GetString ("Go to _Interface Property")
elif mfv.IsEvent then GettextCatalog.GetString ("Go to _Interface Event")
@@ -544,7 +544,7 @@ type CurrentRefactoringOperationsHandler() =
| :? FSharpEntity as fse when fse.IsInterface -> GettextCatalog.GetString ("Find Implementing Types")
| :? FSharpEntity -> GettextCatalog.GetString ("Find Derived Types")
| :? FSharpMemberOrFunctionOrValue as mfv ->
- match mfv.EnclosingEntity with
+ match mfv.DeclaringEntity with
| Some ent when ent.IsInterface ->
GettextCatalog.GetString ("Find Implementing Symbols")
| _ -> GettextCatalog.GetString ("Find overriden Symbols")
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/FileService.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/FileService.fs
index a5658691bf7..f998bd16fa5 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/FileService.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/FileService.fs
@@ -59,6 +59,7 @@ type FileSystem (defaultFileSystem : IFileSystem, openDocuments: unit -> Documen
member x.FileDelete fileName = defaultFileSystem.FileDelete fileName
member x.AssemblyLoadFrom fileName = defaultFileSystem.AssemblyLoadFrom fileName
member x.AssemblyLoad(assemblyName) = defaultFileSystem.AssemblyLoad assemblyName
+ member x.IsStableFileHeuristic fileName = true
module FileService =
let supportedFileExtensions =
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/LanguageService.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/LanguageService.fs
index 82f029d686b..7e13575af3e 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/LanguageService.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/Services/LanguageService.fs
@@ -552,9 +552,9 @@ type LanguageService(dirtyNotify, _extraProjectInfo) as x =
let isOverrideOrDefault = mfv.IsOverrideOrExplicitInterfaceImplementation
let baseTypeMatch() =
maybe {
- let! ent = mfv.EnclosingEntity
+ let! ent = mfv.DeclaringEntity
let! bt = ent.BaseType
- let! carentEncEnt = caretmfv.EnclosingEntity
+ let! carentEncEnt = caretmfv.DeclaringEntity
return carentEncEnt.IsEffectivelySameAs bt.TypeDefinition }
let nameMatch = mfv.DisplayName = caretmfv.DisplayName
@@ -623,7 +623,7 @@ type LanguageService(dirtyNotify, _extraProjectInfo) as x =
let isAnExtensionMethod (mfv:FSharpMemberOrFunctionOrValue) (parentEntity:FSharpSymbol) =
let isExt = mfv.IsExtensionMember
- let extslogicalEntity = mfv.LogicalEnclosingEntity
+ let extslogicalEntity = mfv.ApparentEnclosingEntity
let sameLogicalParent = parentEntity.IsEffectivelySameAs extslogicalEntity
isExt && sameLogicalParent
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/TypeSignatureHelp.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/TypeSignatureHelp.fs
index d2bab021428..34b6b602fd7 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/TypeSignatureHelp.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/TypeSignatureHelp.fs
@@ -96,7 +96,7 @@ module signatureHelp =
let baseType =
match mfv.IsOverrideOrExplicitInterfaceImplementation, mfv.IsExplicitInterfaceImplementation with
| true, false ->
- mfv.EnclosingEntity
+ mfv.DeclaringEntity
|> Option.bind(fun ent -> ent.BaseType)
|> Option.bind typeDefinitionSafe
| true, true ->
@@ -104,7 +104,7 @@ module signatureHelp =
|> Seq.tryHead
|> Option.map(fun s -> s.DeclaringType)
|> Option.bind typeDefinitionSafe
- | _ -> mfv.EnclosingEntity
+ | _ -> mfv.DeclaringEntity
baseType
|> Option.map(fun ent -> ent.IsFSharp)
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpi.Service/MonoDevelop.FSharpInteractive.Service.fsproj b/main/external/fsharpbinding/MonoDevelop.FSharpi.Service/MonoDevelop.FSharpInteractive.Service.fsproj
index acb88aa3ea7..19519893cd3 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpi.Service/MonoDevelop.FSharpInteractive.Service.fsproj
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpi.Service/MonoDevelop.FSharpInteractive.Service.fsproj
@@ -1,4 +1,6 @@
+
+
Debug
@@ -91,6 +93,15 @@
+
+ True
+
+
+ True
+
+
+ True
+
..\packages\FSharp.Compiler.Service\lib\net45\FSharp.Compiler.Service.dll
True
@@ -110,6 +121,28 @@
+
+
+
+
+ ..\packages\Microsoft.DiaSymReader\lib\net20\Microsoft.DiaSymReader.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\packages\Microsoft.DiaSymReader.PortablePdb\lib\net45\Microsoft.DiaSymReader.PortablePdb.dll
+ True
+ True
+
+
+
+
@@ -143,11 +176,20 @@
+
+
+
+
+ True
+
+
+
+
- ..\packages\System.ValueTuple\lib\netstandard1.0\System.ValueTuple.dll
+ ..\packages\System.ValueTuple\lib\net461\System.ValueTuple.dll
True
True
diff --git a/main/external/fsharpbinding/paket.lock b/main/external/fsharpbinding/paket.lock
index e4c1cde062a..bb9347febe9 100644
--- a/main/external/fsharpbinding/paket.lock
+++ b/main/external/fsharpbinding/paket.lock
@@ -6,20 +6,54 @@ NUGET
Fantomas (2.6.1)
FSharp.Compiler.Service (>= 11.0.4)
FSharp.Compiler.CodeDom (0.9.2)
- FSharp.Compiler.Service (17.0.1)
+ FSharp.Compiler.Service (22.0.1)
+ FSharp.Core (>= 4.1.18)
+ Microsoft.DiaSymReader (>= 1.1)
+ Microsoft.DiaSymReader.PortablePdb (>= 1.2)
System.Collections.Immutable (>= 1.3.1)
System.Reflection.Metadata (>= 1.4.2)
+ System.ValueTuple (>= 4.4)
FSharp.Core (4.3.3)
- System.ValueTuple (>= 4.3)
+ Microsoft.DiaSymReader (1.2)
+ Microsoft.Net.Compilers (>= 2.3)
+ Microsoft.DiaSymReader.PortablePdb (1.4)
+ Microsoft.DiaSymReader (>= 1.2)
+ System.Collections (>= 4.3)
+ System.Collections.Immutable (>= 1.3.1)
+ System.Diagnostics.Debug (>= 4.3)
+ System.Globalization (>= 4.3)
+ System.IO (>= 4.3)
+ System.Linq (>= 4.3)
+ System.Reflection (>= 4.3)
+ System.Reflection.Metadata (>= 1.4.2)
+ System.Reflection.Primitives (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Runtime.InteropServices (>= 4.3)
+ System.Text.Encoding (>= 4.3)
+ System.Threading (>= 4.3)
+ Microsoft.Net.Compilers (2.7)
Mono.Cecil (0.10.0-beta6)
Newtonsoft.Json (10.0.3)
StrongNamer (0.0.6)
+ System.Collections (4.3)
System.Collections.Immutable (1.3.1)
+ System.Diagnostics.Debug (4.3)
+ System.Globalization (4.3)
+ System.IO (4.3)
+ System.Linq (4.3)
System.Reactive.Core (3.1.1)
System.Reactive.Interfaces (>= 3.1.1)
System.Reactive.Interfaces (3.1.1)
System.Reactive.Linq (3.1.1)
System.Reactive.Core (>= 3.1.1)
+ System.Reflection (4.3)
System.Reflection.Metadata (1.4.2)
System.Collections.Immutable (>= 1.3.1)
- System.ValueTuple (4.4.0)
+ System.Reflection.Primitives (4.3)
+ System.Runtime (4.3)
+ System.Runtime.Extensions (4.3)
+ System.Runtime.InteropServices (4.3)
+ System.Text.Encoding (4.3)
+ System.Threading (4.3)
+ System.ValueTuple (4.4)
diff --git a/main/src/core/MonoDevelop.Startup/app.config b/main/src/core/MonoDevelop.Startup/app.config
index 11cef824bda..1ab21481353 100644
--- a/main/src/core/MonoDevelop.Startup/app.config
+++ b/main/src/core/MonoDevelop.Startup/app.config
@@ -15,7 +15,8 @@
-
+
+
diff --git a/version-checks b/version-checks
index fe5a688e1b0..767fe7db682 100755
--- a/version-checks
+++ b/version-checks
@@ -17,8 +17,8 @@ DEP[0]=md-addins
DEP_NAME[0]=MDADDINS
DEP_PATH[0]=${top_srcdir}/../md-addins
DEP_MODULE[0]=git@github.com:xamarin/md-addins.git
-DEP_NEEDED_VERSION[0]=5ec518d0b018c866c5ca766f4776d160acd9c7d6
-DEP_BRANCH_AND_REMOTE[0]="master origin/master"
+DEP_NEEDED_VERSION[0]=3a3f456628d4aeeddddab90a9739025d516a5d98
+DEP_BRANCH_AND_REMOTE[0]="fsharp-update-compiler origin/fsharp-update-compiler"
# heap-shot
DEP[1]=heap-shot