@@ -1855,28 +1855,23 @@ enum class GenericParamKind : uint8_t {
1855
1855
};
1856
1856
1857
1857
class GenericParamDescriptor {
1858
+ // / Don't set 0x40 for compatibility with pre-Swift 5.8 runtimes
1858
1859
uint8_t Value;
1859
1860
1860
1861
explicit constexpr GenericParamDescriptor (uint8_t Value)
1861
1862
: Value(Value) {}
1862
1863
public:
1863
1864
constexpr GenericParamDescriptor (GenericParamKind kind,
1864
- bool hasKeyArgument,
1865
- bool hasExtraArgument)
1865
+ bool hasKeyArgument)
1866
1866
: GenericParamDescriptor(GenericParamDescriptor(0 )
1867
1867
.withKind(kind)
1868
- .withKeyArgument(hasKeyArgument)
1869
- .withExtraArgument(hasExtraArgument))
1868
+ .withKeyArgument(hasKeyArgument))
1870
1869
{}
1871
1870
1872
1871
constexpr bool hasKeyArgument () const {
1873
1872
return (Value & 0x80u ) != 0 ;
1874
1873
}
1875
1874
1876
- constexpr bool hasExtraArgument () const {
1877
- return (Value & 0x40u ) != 0 ;
1878
- }
1879
-
1880
1875
constexpr GenericParamKind getKind () const {
1881
1876
return GenericParamKind (Value & 0x3Fu );
1882
1877
}
@@ -1887,12 +1882,6 @@ class GenericParamDescriptor {
1887
1882
| (hasKeyArgument ? 0x80u : 0 ));
1888
1883
}
1889
1884
1890
- constexpr GenericParamDescriptor
1891
- withExtraArgument (bool hasExtraArgument) const {
1892
- return GenericParamDescriptor ((Value & 0xBFu )
1893
- | (hasExtraArgument ? 0x40u : 0 ));
1894
- }
1895
-
1896
1885
constexpr GenericParamDescriptor withKind (GenericParamKind kind) const {
1897
1886
return assert ((uint8_t (kind) & 0x3Fu ) == uint8_t (kind)),
1898
1887
GenericParamDescriptor ((Value & 0xC0u ) | uint8_t (kind));
@@ -1914,8 +1903,7 @@ class GenericParamDescriptor {
1914
1903
// / The default parameter descriptor for an implicit parameter.
1915
1904
static constexpr GenericParamDescriptor implicit () {
1916
1905
return GenericParamDescriptor (GenericParamKind::Type,
1917
- /* key argument*/ true ,
1918
- /* extra argument*/ false );
1906
+ /* key argument*/ true );
1919
1907
}
1920
1908
};
1921
1909
@@ -1952,30 +1940,25 @@ enum class GenericRequirementKind : uint8_t {
1952
1940
};
1953
1941
1954
1942
class GenericRequirementFlags {
1943
+ // / Don't set 0x40 for compatibility with pre-Swift 5.8 runtimes
1955
1944
uint32_t Value;
1956
1945
1957
1946
explicit constexpr GenericRequirementFlags (uint32_t Value)
1958
1947
: Value(Value) {}
1959
1948
public:
1960
1949
constexpr GenericRequirementFlags (GenericRequirementKind kind,
1961
1950
bool hasKeyArgument,
1962
- bool hasExtraArgument,
1963
1951
bool isPackRequirement)
1964
1952
: GenericRequirementFlags(GenericRequirementFlags(0 )
1965
1953
.withKind(kind)
1966
1954
.withKeyArgument(hasKeyArgument)
1967
- .withExtraArgument(hasExtraArgument)
1968
1955
.withPackRequirement(isPackRequirement))
1969
1956
{}
1970
1957
1971
1958
constexpr bool hasKeyArgument () const {
1972
1959
return (Value & 0x80u ) != 0 ;
1973
1960
}
1974
1961
1975
- constexpr bool hasExtraArgument () const {
1976
- return (Value & 0x40u ) != 0 ;
1977
- }
1978
-
1979
1962
// / If this is true, the subject type of the requirement is a pack.
1980
1963
// / When the requirement is a conformance requirement, the corresponding
1981
1964
// / entry in the generic arguments array becomes a TargetWitnessTablePack.
@@ -1993,12 +1976,6 @@ class GenericRequirementFlags {
1993
1976
| (hasKeyArgument ? 0x80u : 0 ));
1994
1977
}
1995
1978
1996
- constexpr GenericRequirementFlags
1997
- withExtraArgument (bool hasExtraArgument) const {
1998
- return GenericRequirementFlags ((Value & 0xBFu )
1999
- | (hasExtraArgument ? 0x40u : 0 ));
2000
- }
2001
-
2002
1979
constexpr GenericRequirementFlags
2003
1980
withPackRequirement (bool isPackRequirement) const {
2004
1981
return GenericRequirementFlags ((Value & 0xBFu )
0 commit comments