Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ scripts/*.patch
/src/fsharp/FSharp.LanguageService.Compiler/pplex.fs
/src/fsharp/FSharp.LanguageService.Compiler/pppars.fs
/src/fsharp/FSharp.LanguageService.Compiler/pppars.fsi
/src/fsharp/*/Properties/launchSettings.json
/vsintegration/src/unittests/Unittests.fsi
/tests/*FSharp_Failures.env
/tests/*FSharp_Failures.lst
Expand Down
19 changes: 16 additions & 3 deletions src/fsharp/DotNetFrameworkDependencies.fs
Original file line number Diff line number Diff line change
Expand Up @@ -259,10 +259,23 @@ module internal FSharp.Compiler.DotNetFrameworkDependencies
if not (assemblies.ContainsKey(referenceName)) then
try
if File.Exists(path) then
// System.Private.CoreLib doesn't load with reflection
if referenceName = "System.Private.CoreLib" then
match referenceName with
| "System.Runtime.WindowsRuntime"
| "System.Runtime.WindowsRuntime.UI.Xaml" ->
// The Windows compatibility pack included in the runtime contains a reference to
// System.Runtime.WindowsRuntime, but to properly use that type the runtime also needs a
// reference to the Windows.md meta-package, which isn't referenced by default. To avoid
// a bug where types from `Windows, Version=255.255.255.255` can't be found we're going to
// not default include this assembly. It can still be manually referenced if it's needed
// via the System.Runtime.WindowsRuntime NuGet package.
//
// In the future this branch can be removed because WinRT support is being removed from the
// .NET 5 SDK (https://github.com/dotnet/runtime/pull/36715)
()
| "System.Private.CoreLib" ->
// System.Private.CoreLib doesn't load with reflection
assemblies.Add(referenceName, path)
else
| _ ->
try
let asm = System.Reflection.Assembly.LoadFrom(path)
assemblies.Add(referenceName, path)
Expand Down
2 changes: 1 addition & 1 deletion src/fsharp/LexFilter.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1242,7 +1242,7 @@ type LexFilterImpl (lightSyntaxStatus: LightSyntaxStatus, compilingFsLib, lexer,
// a TYPE or MODULE. So the lexfilter helps out by looking ahead for these tokens and (1) closing expression contexts and (2) inserting extra 'coming soon' tokens
// that the expression rules in the FsYacc parser can 'shift' to make progress parsing the incomplete expressions, without using the 'recover' action.
let insertComingSoonTokens(keywordName, comingSoon, isHere) =
// compiling the source for FSharp.Core.dll uses crazy syntax like
// compiling the source for FSharp.Core.dll uses unconventional syntax like
// (# "unbox.any !0" type ('T) x : 'T #)
// where the type keyword is used inside an expression, so we must exempt FSharp.Core from some extra failed-parse-diagnostics-recovery-processing of the 'type' keyword
let mutable effectsToDo = []
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.cs.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">Typ {0} nedefinuje pole, konstruktor ani člen {1}.</target>
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.de.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">Der Typ "{0}" definiert nicht das Feld, den Konstruktor oder den Member "{1}".</target>
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.es.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">El tipo "{0}" no define el campo, constructor o miembro "{1}".</target>
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.fr.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">Le type '{0}' ne définit pas le champ, le constructeur ou le membre '{1}'.</target>
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.it.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">Il tipo '{0}' non definisce il campo, il costruttore o il membro '{1}'.</target>
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.ja.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">型 '{0}' は、フィールド、コンストラクター、またはメンバー '{1}' を定義していません。</target>
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.ko.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">'{0}' 형식은 '{1}' 필드, 생성자 또는 멤버를 정의하지 않습니다.</target>
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.pl.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">Typ „{0}” nie definiuje pola, konstruktora lub składowej „{1}”.</target>
Expand Down
15 changes: 15 additions & 0 deletions src/fsharp/xlf/FSComp.txt.pt-BR.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<target state="new">implicit yield</target>
<note />
</trans-unit>
<trans-unit id="featureInterfacesWithMultipleGenericInstantiation">
<source>interfaces with multiple generic instantiation</source>
<target state="new">interfaces with multiple generic instantiation</target>
<note />
</trans-unit>
<trans-unit id="featureNameOf">
<source>nameof</source>
<target state="new">nameof</target>
Expand Down Expand Up @@ -242,6 +247,16 @@
<target state="new">Interface member '{0}' does not have a most specific implementation.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariable">
<source>'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</source>
<target state="new">'{0}' cannot implement the interface '{1}' with the two instantiations '{2}' and '{3}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="typrelInterfaceWithConcreteAndVariableObjectExpression">
<source>You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</source>
<target state="new">You cannot implement the interface '{0}' with the two instantiations '{1}' and '{2}' because they may unify.</target>
<note />
</trans-unit>
<trans-unit id="undefinedNameFieldConstructorOrMemberWhenTypeIsKnown">
<source>The type '{0}' does not define the field, constructor or member '{1}'.</source>
<target state="translated">O tipo '{0}' não define o campo, o construtor ou o membro '{1}'.</target>
Expand Down
Loading