mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Merge remote-tracking branch 'origin/main' into rebranch
This commit is contained in:
@@ -555,20 +555,8 @@ getActualVarDeclIntroducer(serialization::VarDeclIntroducer raw) {
|
||||
}
|
||||
|
||||
Expected<Pattern *> ModuleFile::readPattern(DeclContext *owningDC) {
|
||||
// Currently, the only case in which this function can fail (return an error)
|
||||
// is when reading a pattern for a single variable declaration.
|
||||
|
||||
using namespace decls_block;
|
||||
|
||||
auto readPatternUnchecked = [this](DeclContext *owningDC) -> Pattern * {
|
||||
Expected<Pattern *> deserialized = readPattern(owningDC);
|
||||
if (!deserialized) {
|
||||
fatal(deserialized.takeError());
|
||||
}
|
||||
assert(deserialized.get());
|
||||
return deserialized.get();
|
||||
};
|
||||
|
||||
SmallVector<uint64_t, 8> scratch;
|
||||
|
||||
BCOffsetRAII restoreOffset(DeclTypeCursor);
|
||||
@@ -589,7 +577,8 @@ Expected<Pattern *> ModuleFile::readPattern(DeclContext *owningDC) {
|
||||
fatalIfUnexpected(DeclTypeCursor.readRecord(next.ID, scratch));
|
||||
switch (kind) {
|
||||
case decls_block::PAREN_PATTERN: {
|
||||
Pattern *subPattern = readPatternUnchecked(owningDC);
|
||||
Pattern *subPattern;
|
||||
UNWRAP(readPattern(owningDC), subPattern);
|
||||
|
||||
auto result = ParenPattern::createImplicit(getContext(), subPattern);
|
||||
|
||||
@@ -622,12 +611,15 @@ Expected<Pattern *> ModuleFile::readPattern(DeclContext *owningDC) {
|
||||
TuplePatternEltLayout::readRecord(scratch, labelID);
|
||||
Identifier label = getIdentifier(labelID);
|
||||
|
||||
Pattern *subPattern = readPatternUnchecked(owningDC);
|
||||
Pattern *subPattern;
|
||||
UNWRAP(readPattern(owningDC), subPattern);
|
||||
elements.push_back(TuplePatternElt(label, SourceLoc(), subPattern));
|
||||
}
|
||||
|
||||
auto result = TuplePattern::createImplicit(getContext(), elements);
|
||||
recordPatternType(result, getType(tupleTypeID));
|
||||
Type tupleType;
|
||||
UNWRAP(getTypeChecked(tupleTypeID), tupleType);
|
||||
recordPatternType(result, tupleType);
|
||||
restoreOffset.reset();
|
||||
return result;
|
||||
}
|
||||
@@ -686,7 +678,8 @@ Expected<Pattern *> ModuleFile::readPattern(DeclContext *owningDC) {
|
||||
unsigned rawIntroducer;
|
||||
BindingPatternLayout::readRecord(scratch, rawIntroducer);
|
||||
|
||||
Pattern *subPattern = readPatternUnchecked(owningDC);
|
||||
Pattern *subPattern;
|
||||
UNWRAP(readPattern(owningDC), subPattern);
|
||||
|
||||
auto introducer = getActualVarDeclIntroducer(
|
||||
(serialization::VarDeclIntroducer) rawIntroducer);
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
@available(unavailable, *, message: "Mutex is not available on this platform")
|
||||
@available(*, unavailable, message: "Mutex is not available on this platform")
|
||||
@frozen
|
||||
@_staticExclusiveOnly
|
||||
public struct Mutex<Value: ~Copyable>: ~Copyable {}
|
||||
|
||||
Reference in New Issue
Block a user