Skip to content

Commit

Permalink
Remove one "impossible" error - fixes dotnet#5745
Browse files Browse the repository at this point in the history
  • Loading branch information
forki committed Oct 9, 2018
1 parent 4529c8f commit e2f0099
Show file tree
Hide file tree
Showing 16 changed files with 260 additions and 42 deletions.
5 changes: 4 additions & 1 deletion src/fsharp/FSComp.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1293,7 +1293,10 @@ descriptionUnavailable,"(description unavailable...)"
3171,tcGeneratedTypesShouldBeInternalOrPrivate,"The provided types generated by this use of a type provider may not be used from other F# assemblies and should be marked internal or private. Consider using 'type internal TypeName = ...' or 'type private TypeName = ...'."
3172,chkGetterAndSetterHaveSamePropertyType,"A property's getter and setter must have the same type. Property '%s' has getter of type '%s' but setter of type '%s'."
3173,tcRuntimeSuppliedMethodCannotBeUsedInUserCode,"Array method '%s' is supplied by the runtime and cannot be directly used in code. For operations with array elements consider using family of GetArray/SetArray functions from LanguagePrimitives.IntrinsicFunctions module."
3174,tcUnionCaseConstructorDoesNotHaveFieldWithGivenName,"Union case/exception '%s' does not have field named '%s'."
3174,tcUnionCaseConstructorDoesNotHaveFieldWithGivenName,"The union case '%s' does not have a field named '%s'."
3174,tcExceptionConstructorDoesNotHaveFieldWithGivenName,"The exception '%s' does not have a field named '%s'."
3174,tcActivePatternsDoNotHaveFields,"Active patterns do not have fields. This syntax is invalid."
3174,tcConstructorDoesNotHaveFieldWithGivenName,"The constructor does not have a field named '%s'."
3175,tcUnionCaseFieldCannotBeUsedMoreThanOnce,"Union case/exception field '%s' cannot be used more than once."
3176,tcFieldNameIsUsedModeThanOnce,"Named field '%s' is used more than once."
3176,tcFieldNameConflictsWithGeneratedNameForAnonymousField,"Named field '%s' conflicts with autogenerated name for anonymous field."
Expand Down
31 changes: 18 additions & 13 deletions src/fsharp/TypeChecker.fs
Original file line number Diff line number Diff line change
Expand Up @@ -5316,12 +5316,14 @@ and TcPat warnOnUpper cenv env topValInfo vFlags (tpenv, names, takenNames) ty p
for (id, pat) in pairs do
match argNames |> List.tryFindIndex (fun id2 -> id.idText = id2.idText) with
| None ->
let caseName =
match item with
| Item.UnionCase(uci, _) -> uci.Name
| Item.ExnCase tcref -> tcref.DisplayName
| _ -> failwith "impossible"
error(Error(FSComp.SR.tcUnionCaseConstructorDoesNotHaveFieldWithGivenName(caseName, id.idText), id.idRange))
match item with
| Item.UnionCase(uci, _) ->
error(Error(FSComp.SR.tcUnionCaseConstructorDoesNotHaveFieldWithGivenName(uci.Name, id.idText), id.idRange))
| Item.ExnCase tcref ->
error(Error(FSComp.SR.tcExceptionConstructorDoesNotHaveFieldWithGivenName(tcref.DisplayName, id.idText), id.idRange))
| _ ->
error(Error(FSComp.SR.tcConstructorDoesNotHaveFieldWithGivenName(id.idText), id.idRange))

| Some idx ->
match box result.[idx] with
| null ->
Expand Down Expand Up @@ -8644,13 +8646,16 @@ and TcItemThen cenv overallTy env tpenv (item, mItem, rest, afterResolution) del
assert (isNull(box fittedArgs.[currentIndex]))
fittedArgs.[currentIndex] <- List.item currentIndex args // grab original argument, not item from the list of named parameters
currentIndex <- currentIndex + 1
else
let caseName =
match item with
| Item.UnionCase(uci, _) -> uci.Name
| Item.ExnCase tcref -> tcref.DisplayName
| _ -> failwith "impossible"
error(Error(FSComp.SR.tcUnionCaseConstructorDoesNotHaveFieldWithGivenName(caseName, id.idText), id.idRange))
else
match item with
| Item.UnionCase(uci, _) ->
error(Error(FSComp.SR.tcUnionCaseConstructorDoesNotHaveFieldWithGivenName(uci.Name, id.idText), id.idRange))
| Item.ExnCase tcref ->
error(Error(FSComp.SR.tcExceptionConstructorDoesNotHaveFieldWithGivenName(tcref.DisplayName, id.idText), id.idRange))
| Item.ActivePatternResult(_,_,_,_) ->
error(Error(FSComp.SR.tcActivePatternsDoNotHaveFields(), id.idRange))
| _ ->
error(Error(FSComp.SR.tcConstructorDoesNotHaveFieldWithGivenName(id.idText), id.idRange))

assert (Seq.forall (box >> ((<>) null) ) fittedArgs)
List.ofArray fittedArgs
Expand Down
19 changes: 17 additions & 2 deletions src/fsharp/xlf/FSComp.txt.cs.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6328,8 +6328,8 @@
<note />
</trans-unit>
<trans-unit id="tcUnionCaseConstructorDoesNotHaveFieldWithGivenName">
<source>Union case/exception '{0}' does not have field named '{1}'.</source>
<target state="translated">Výjimka nebo případ typu union {0} nemá pole s názvem {1}.</target>
<source>The union case '{0}' does not have a field named '{1}'.</source>
<target state="needs-review-translation">Výjimka nebo případ typu union {0} nemá pole s názvem {1}.</target>
<note />
</trans-unit>
<trans-unit id="tcUnionCaseFieldCannotBeUsedMoreThanOnce">
Expand Down Expand Up @@ -7067,6 +7067,21 @@
<target state="new">This type does not inherit Attribute, it will not work correctly with other .NET languages.</target>
<note />
</trans-unit>
<trans-unit id="tcExceptionConstructorDoesNotHaveFieldWithGivenName">
<source>The exception '{0}' does not have a field named '{1}'.</source>
<target state="new">The exception '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcConstructorDoesNotHaveFieldWithGivenName">
<source>The constructor does not have a field named '{0}'.</source>
<target state="new">The constructor does not have a field named '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="tcActivePatternsDoNotHaveFields">
<source>Active patterns do not have fields. This syntax is invalid.</source>
<target state="new">Active patterns do not have fields. This syntax is invalid.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
19 changes: 17 additions & 2 deletions src/fsharp/xlf/FSComp.txt.de.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6328,8 +6328,8 @@
<note />
</trans-unit>
<trans-unit id="tcUnionCaseConstructorDoesNotHaveFieldWithGivenName">
<source>Union case/exception '{0}' does not have field named '{1}'.</source>
<target state="translated">Union-Fall/Ausnahme '{0}' verfügt nicht über ein Feld mit dem Namen '{1}'.</target>
<source>The union case '{0}' does not have a field named '{1}'.</source>
<target state="needs-review-translation">Union-Fall/Ausnahme '{0}' verfügt nicht über ein Feld mit dem Namen '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcUnionCaseFieldCannotBeUsedMoreThanOnce">
Expand Down Expand Up @@ -7067,6 +7067,21 @@
<target state="new">This type does not inherit Attribute, it will not work correctly with other .NET languages.</target>
<note />
</trans-unit>
<trans-unit id="tcExceptionConstructorDoesNotHaveFieldWithGivenName">
<source>The exception '{0}' does not have a field named '{1}'.</source>
<target state="new">The exception '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcConstructorDoesNotHaveFieldWithGivenName">
<source>The constructor does not have a field named '{0}'.</source>
<target state="new">The constructor does not have a field named '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="tcActivePatternsDoNotHaveFields">
<source>Active patterns do not have fields. This syntax is invalid.</source>
<target state="new">Active patterns do not have fields. This syntax is invalid.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
19 changes: 17 additions & 2 deletions src/fsharp/xlf/FSComp.txt.en.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6328,8 +6328,8 @@
<note />
</trans-unit>
<trans-unit id="tcUnionCaseConstructorDoesNotHaveFieldWithGivenName">
<source>Union case/exception '{0}' does not have field named '{1}'.</source>
<target state="new">Union case/exception '{0}' does not have field named '{1}'.</target>
<source>The union case '{0}' does not have a field named '{1}'.</source>
<target state="new">The union case '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcUnionCaseFieldCannotBeUsedMoreThanOnce">
Expand Down Expand Up @@ -7067,6 +7067,21 @@
<target state="new">This type does not inherit Attribute, it will not work correctly with other .NET languages.</target>
<note />
</trans-unit>
<trans-unit id="tcExceptionConstructorDoesNotHaveFieldWithGivenName">
<source>The exception '{0}' does not have a field named '{1}'.</source>
<target state="new">The exception '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcConstructorDoesNotHaveFieldWithGivenName">
<source>The constructor does not have a field named '{0}'.</source>
<target state="new">The constructor does not have a field named '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="tcActivePatternsDoNotHaveFields">
<source>Active patterns do not have fields. This syntax is invalid.</source>
<target state="new">Active patterns do not have fields. This syntax is invalid.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
19 changes: 17 additions & 2 deletions src/fsharp/xlf/FSComp.txt.es.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6328,8 +6328,8 @@
<note />
</trans-unit>
<trans-unit id="tcUnionCaseConstructorDoesNotHaveFieldWithGivenName">
<source>Union case/exception '{0}' does not have field named '{1}'.</source>
<target state="translated">La excepción o el caso de unión '{0}' no tiene un campo denominado '{1}'.</target>
<source>The union case '{0}' does not have a field named '{1}'.</source>
<target state="needs-review-translation">La excepción o el caso de unión '{0}' no tiene un campo denominado '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcUnionCaseFieldCannotBeUsedMoreThanOnce">
Expand Down Expand Up @@ -7067,6 +7067,21 @@
<target state="new">This type does not inherit Attribute, it will not work correctly with other .NET languages.</target>
<note />
</trans-unit>
<trans-unit id="tcExceptionConstructorDoesNotHaveFieldWithGivenName">
<source>The exception '{0}' does not have a field named '{1}'.</source>
<target state="new">The exception '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcConstructorDoesNotHaveFieldWithGivenName">
<source>The constructor does not have a field named '{0}'.</source>
<target state="new">The constructor does not have a field named '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="tcActivePatternsDoNotHaveFields">
<source>Active patterns do not have fields. This syntax is invalid.</source>
<target state="new">Active patterns do not have fields. This syntax is invalid.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
19 changes: 17 additions & 2 deletions src/fsharp/xlf/FSComp.txt.fr.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6328,8 +6328,8 @@
<note />
</trans-unit>
<trans-unit id="tcUnionCaseConstructorDoesNotHaveFieldWithGivenName">
<source>Union case/exception '{0}' does not have field named '{1}'.</source>
<target state="translated">Le cas ou l'exception d'union '{0}' ne possède pas de champ nommé '{1}'.</target>
<source>The union case '{0}' does not have a field named '{1}'.</source>
<target state="needs-review-translation">Le cas ou l'exception d'union '{0}' ne possède pas de champ nommé '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcUnionCaseFieldCannotBeUsedMoreThanOnce">
Expand Down Expand Up @@ -7067,6 +7067,21 @@
<target state="new">This type does not inherit Attribute, it will not work correctly with other .NET languages.</target>
<note />
</trans-unit>
<trans-unit id="tcExceptionConstructorDoesNotHaveFieldWithGivenName">
<source>The exception '{0}' does not have a field named '{1}'.</source>
<target state="new">The exception '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcConstructorDoesNotHaveFieldWithGivenName">
<source>The constructor does not have a field named '{0}'.</source>
<target state="new">The constructor does not have a field named '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="tcActivePatternsDoNotHaveFields">
<source>Active patterns do not have fields. This syntax is invalid.</source>
<target state="new">Active patterns do not have fields. This syntax is invalid.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
19 changes: 17 additions & 2 deletions src/fsharp/xlf/FSComp.txt.it.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6328,8 +6328,8 @@
<note />
</trans-unit>
<trans-unit id="tcUnionCaseConstructorDoesNotHaveFieldWithGivenName">
<source>Union case/exception '{0}' does not have field named '{1}'.</source>
<target state="translated">Il case di unione/eccezione '{0}' non contiene il campo denominato '{1}'.</target>
<source>The union case '{0}' does not have a field named '{1}'.</source>
<target state="needs-review-translation">Il case di unione/eccezione '{0}' non contiene il campo denominato '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcUnionCaseFieldCannotBeUsedMoreThanOnce">
Expand Down Expand Up @@ -7067,6 +7067,21 @@
<target state="new">This type does not inherit Attribute, it will not work correctly with other .NET languages.</target>
<note />
</trans-unit>
<trans-unit id="tcExceptionConstructorDoesNotHaveFieldWithGivenName">
<source>The exception '{0}' does not have a field named '{1}'.</source>
<target state="new">The exception '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcConstructorDoesNotHaveFieldWithGivenName">
<source>The constructor does not have a field named '{0}'.</source>
<target state="new">The constructor does not have a field named '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="tcActivePatternsDoNotHaveFields">
<source>Active patterns do not have fields. This syntax is invalid.</source>
<target state="new">Active patterns do not have fields. This syntax is invalid.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
19 changes: 17 additions & 2 deletions src/fsharp/xlf/FSComp.txt.ja.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6328,8 +6328,8 @@
<note />
</trans-unit>
<trans-unit id="tcUnionCaseConstructorDoesNotHaveFieldWithGivenName">
<source>Union case/exception '{0}' does not have field named '{1}'.</source>
<target state="translated">共用体ケース/例外 '{0}' には、'{1}' という名前のフィールドがありません。</target>
<source>The union case '{0}' does not have a field named '{1}'.</source>
<target state="needs-review-translation">共用体ケース/例外 '{0}' には、'{1}' という名前のフィールドがありません。</target>
<note />
</trans-unit>
<trans-unit id="tcUnionCaseFieldCannotBeUsedMoreThanOnce">
Expand Down Expand Up @@ -7067,6 +7067,21 @@
<target state="new">This type does not inherit Attribute, it will not work correctly with other .NET languages.</target>
<note />
</trans-unit>
<trans-unit id="tcExceptionConstructorDoesNotHaveFieldWithGivenName">
<source>The exception '{0}' does not have a field named '{1}'.</source>
<target state="new">The exception '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcConstructorDoesNotHaveFieldWithGivenName">
<source>The constructor does not have a field named '{0}'.</source>
<target state="new">The constructor does not have a field named '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="tcActivePatternsDoNotHaveFields">
<source>Active patterns do not have fields. This syntax is invalid.</source>
<target state="new">Active patterns do not have fields. This syntax is invalid.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
19 changes: 17 additions & 2 deletions src/fsharp/xlf/FSComp.txt.ko.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6328,8 +6328,8 @@
<note />
</trans-unit>
<trans-unit id="tcUnionCaseConstructorDoesNotHaveFieldWithGivenName">
<source>Union case/exception '{0}' does not have field named '{1}'.</source>
<target state="translated">공용 구조체 케이스/예외 '{0}'에 이름이 '{1}'인 필드가 없습니다.</target>
<source>The union case '{0}' does not have a field named '{1}'.</source>
<target state="needs-review-translation">공용 구조체 케이스/예외 '{0}'에 이름이 '{1}'인 필드가 없습니다.</target>
<note />
</trans-unit>
<trans-unit id="tcUnionCaseFieldCannotBeUsedMoreThanOnce">
Expand Down Expand Up @@ -7067,6 +7067,21 @@
<target state="new">This type does not inherit Attribute, it will not work correctly with other .NET languages.</target>
<note />
</trans-unit>
<trans-unit id="tcExceptionConstructorDoesNotHaveFieldWithGivenName">
<source>The exception '{0}' does not have a field named '{1}'.</source>
<target state="new">The exception '{0}' does not have a field named '{1}'.</target>
<note />
</trans-unit>
<trans-unit id="tcConstructorDoesNotHaveFieldWithGivenName">
<source>The constructor does not have a field named '{0}'.</source>
<target state="new">The constructor does not have a field named '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="tcActivePatternsDoNotHaveFields">
<source>Active patterns do not have fields. This syntax is invalid.</source>
<target state="new">Active patterns do not have fields. This syntax is invalid.</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
Loading

0 comments on commit e2f0099

Please sign in to comment.