[gardening] Fix accidental uses of \t

This commit is contained in:
practicalswift
2016-09-17 13:14:57 +02:00
parent 40a98df6f9
commit 8d6251de66
16 changed files with 452 additions and 453 deletions

View File

@@ -35,8 +35,8 @@ We describe each in detail below:
Platform | Comment | Check Status
------------ | ------- | ------------
All supported platforms | @swift-ci Please smoke test | Swift Test Linux Platform (smoke test) <br> Swift Test OS X Platform (smoke test)
All supported platforms | @swift-ci Please smoke test and merge | Swift Test Linux Platform (smoke test) <br> Swift Test OS X Platform (smoke test)
All supported platforms | @swift-ci Please smoke test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)
All supported platforms | @swift-ci Please smoke test and mere | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)
OS X platform | @swift-ci Please smoke test OS X platform | Swift Test OS X Platform (smoke test)
Linux platform | @swift-ci Please smoke test Linux platform | Swift Test Linux Platform (smoke test)
@@ -66,14 +66,14 @@ A smoke test on Linux does the following:
Platform | Comment | Check Status
------------ | ------- | ------------
All supported platforms | @swift-ci Please test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br>Swift Test Linux Platform<br>Swift Test OS X Platform<br>
All supported platforms | @swift-ci Please clean test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br>Swift Test Linux Platform<br>Swift Test OS X Platform<br>
All supported platforms | @swift-ci Please test and merge | Swift Test Linux Platform (smoke test) <br> Swift Test OS X Platform (smoke test)<br> Swift Test Linux Platform <br>Swift Test OS X Platform
OS X platform | @swift-ci Please test OS X platform | Swift Test OS X Platform (smoke test)<br>Swift Test OS X Platform
All supported platforms | @swift-ci Please test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br>Swift Test Linux Platform<br>Swift Test OS X Platform<br>
All supported platforms | @swift-ci Please clean test | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br>Swift Test Linux Platform<br>Swift Test OS X Platform<br>
All supported platforms | @swift-ci Please test and merge | Swift Test Linux Platform (smoke test)<br>Swift Test OS X Platform (smoke test)<br> Swift Test Linux Platform <br>Swift Test OS X Platform
OS X platform | @swift-ci Please test OS X platform | Swift Test OS X Platform (smoke test)<br>Swift Test OS X Platform
OS X platform | @swift-ci Please clean test OS X platform | Swift Test OS X Platform (smoke test)<br>Swift Test OS X Platform
OS X platform | @swift-ci Please benchmark | Swift Benchmark on OS X Platform
Linux platform | @swift-ci Please test Linux platform | Swift Test Linux Platform (smoke test) <br> Swift Test Linux Platform
Linux platform | @swift-ci Please clean test Linux platform | Swift Test Linux Platform (smoke test) <br> Swift Test Linux Platform
Linux platform | @swift-ci Please test Linux platform | Swift Test Linux Platform (smoke test)<br>Swift Test Linux Platform
Linux platform | @swift-ci Please clean test Linux platform | Swift Test Linux Platform (smoke test)<br>Swift Test Linux Platform
The core principles of validation testing is that:

View File

@@ -560,16 +560,15 @@ RValue RValue::extractElement(unsigned n) && {
assert(isComplete() && "rvalue is not complete");
CanTupleType tupleTy = dyn_cast<TupleType>(type);
if (!tupleTy) {
assert(n == 0);
if (!tupleTy) {
assert(n == 0);
unsigned to = getRValueSize(type);
assert(to == values.size());
RValue element({llvm::makeArrayRef(values).slice(0, to), type});
makeUsed();
return element;
assert(to == values.size());
RValue element({llvm::makeArrayRef(values).slice(0, to), type});
makeUsed();
return element;
}
auto range = getElementRange(tupleTy, n);
unsigned from = range.first, to = range.second;
@@ -583,12 +582,12 @@ void RValue::extractElements(SmallVectorImpl<RValue> &elements) && {
assert(isComplete() && "rvalue is not complete");
CanTupleType tupleTy = dyn_cast<TupleType>(type);
if (!tupleTy) {
if (!tupleTy) {
unsigned to = getRValueSize(type);
assert(to == values.size());
elements.push_back({llvm::makeArrayRef(values).slice(0, to), type});
makeUsed();
return;
assert(to == values.size());
elements.push_back({llvm::makeArrayRef(values).slice(0, to), type});
makeUsed();
return;
}
unsigned from = 0;

View File

@@ -2976,25 +2976,25 @@ namespace {
if (arg.isRValue()) {
if (CanTupleType substArgType =
dyn_cast<TupleType>(arg.getSubstType())) {
// The original type isn't necessarily a tuple.
assert(origParamType.matchesTuple(substArgType));
// The original type isn't necessarily a tuple.
assert(origParamType.matchesTuple(substArgType));
auto loc = arg.getKnownRValueLocation();
SmallVector<RValue, 4> elts;
std::move(arg).asKnownRValue().extractElements(elts);
for (auto i : indices(substArgType.getElementTypes())) {
emit({ loc, std::move(elts[i]) },
origParamType.getTupleElementType(i));
}
return;
}
auto loc = arg.getKnownRValueLocation();
SmallVector<RValue, 4> elts;
std::move(arg).asKnownRValue().extractElements(elts);
for (auto i : indices(substArgType.getElementTypes())) {
emit({ loc, std::move(elts[i]) },
origParamType.getTupleElementType(i));
}
return;
}
auto loc = arg.getKnownRValueLocation();
SmallVector<RValue, 1> elts;
std::move(arg).asKnownRValue().extractElements(elts);
emit({ loc, std::move(elts[0]) },
origParamType.getTupleElementType(0));
return;
auto loc = arg.getKnownRValueLocation();
SmallVector<RValue, 1> elts;
std::move(arg).asKnownRValue().extractElements(elts);
emit({ loc, std::move(elts[0]) },
origParamType.getTupleElementType(0));
return;
}
// Otherwise, we're working with an expression.

View File

@@ -72,7 +72,7 @@ bool EpilogueARCContext::convergeDataflow() {
BBSetOut = EpilogueARCBlockStates[*Iter]->BBSetIn;
Iter = std::next(Iter);
for (auto E = B->succ_end(); Iter != E; ++Iter) {
BBSetOut &= EpilogueARCBlockStates[*Iter]->BBSetIn;
BBSetOut &= EpilogueARCBlockStates[*Iter]->BBSetIn;
}
} else if (isExitBlock(B)) {
// We set the BBSetOut for exit blocks.

View File

@@ -2685,7 +2685,7 @@ bool swift::calleesAreStaticallyKnowable(SILModule &M, SILDeclRef Decl) {
case Accessibility::Public:
if (auto ctor = dyn_cast<ConstructorDecl>(AFD)) {
if (ctor->isRequired())
return false;
return false;
}
SWIFT_FALLTHROUGH;
case Accessibility::Internal:

View File

@@ -86,7 +86,7 @@ static void deriveBodyRawRepresentable_raw(AbstractFunctionDecl *toRawDecl) {
for (auto elt : enumDecl->getAllElements()) {
assert(elt->getTypeCheckedRawValueExpr() &&
"Enum element has no literal - missing a call to checkEnumRawValues()");
"Enum element has no literal - missing a call to checkEnumRawValues()");
assert(elt->getTypeCheckedRawValueExpr()->getType()->isEqual(rawTy));
}
@@ -188,7 +188,7 @@ deriveBodyRawRepresentable_init(AbstractFunctionDecl *initDecl) {
for (auto elt : enumDecl->getAllElements()) {
assert(elt->getTypeCheckedRawValueExpr() &&
"Enum element has no literal - missing a call to checkEnumRawValues()");
"Enum element has no literal - missing a call to checkEnumRawValues()");
assert(elt->getTypeCheckedRawValueExpr()->getType()->isEqual(rawTy));
}

View File

@@ -242,7 +242,7 @@ void IterativeTypeChecker::processInheritedProtocols(
if (inheritedProtocol == protocol ||
inheritedProtocol->inheritsFrom(protocol)) {
if (!diagnosedCircularity &&
!protocol->isInheritedProtocolsValid()) {
!protocol->isInheritedProtocolsValid()) {
diagnose(protocol,
diag::circular_protocol_def, protocol->getName().str())
.fixItRemove(inherited.getSourceRange());

View File

@@ -4019,8 +4019,8 @@ static void diagnoseConformanceFailure(TypeChecker &TC, Type T,
// Special case: for enums with a raw type, explain that the failing
// conformance to RawRepresentable was inferred.
if (auto enumDecl = T->getEnumOrBoundGenericEnum()) {
if (Proto->isSpecificProtocol(KnownProtocolKind::RawRepresentable) &&
enumDecl->derivesProtocolConformance(Proto) && enumDecl->hasRawType()) {
if (Proto->isSpecificProtocol(KnownProtocolKind::RawRepresentable) &&
enumDecl->derivesProtocolConformance(Proto) && enumDecl->hasRawType()) {
TC.diagnose(enumDecl->getInherited()[0].getSourceRange().Start,
diag::enum_raw_type_nonconforming_and_nonsynthable,

View File

@@ -38,16 +38,16 @@ void __NSDataInvokeDeallocatorFree(void *mem, NSUInteger length) {
static int __NSFileProtectionClassForOptions(NSUInteger options) {
int result;
switch (options & NSDataWritingFileProtectionMask) {
case NSDataWritingFileProtectionComplete: // Class A
case NSDataWritingFileProtectionComplete: // Class A
result = 1;
break;
case NSDataWritingFileProtectionCompleteUnlessOpen: // Class B
case NSDataWritingFileProtectionCompleteUnlessOpen: // Class B
result = 2;
break;
case NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication: // Class C
case NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication: // Class C
result = 3;
break;
case NSDataWritingFileProtectionNone: // Class D
case NSDataWritingFileProtectionNone: // Class D
result = 4;
break;
default:

View File

@@ -44,355 +44,355 @@
#define OS_LOG_PRIVACY_OPTION_PUBLIC 2
enum os_trace_int_types_t {
T_CHAR = -2,
T_SHORT = -1,
T_INT = 0,
T_LONG = 1,
T_LONGLONG = 2,
T_SIZE = 3,
T_INTMAX = 4,
T_PTRDIFF = 5,
T_CHAR = -2,
T_SHORT = -1,
T_INT = 0,
T_LONG = 1,
T_LONGLONG = 2,
T_SIZE = 3,
T_INTMAX = 4,
T_PTRDIFF = 5,
};
OS_ENUM(os_log_value_type, uint8_t,
OS_LOG_BUFFER_VALUE_TYPE_SCALAR = 0,
OS_LOG_BUFFER_VALUE_TYPE_COUNT = 1,
OS_LOG_BUFFER_VALUE_TYPE_STRING = 2,
OS_LOG_BUFFER_VALUE_TYPE_POINTER = 3,
OS_LOG_BUFFER_VALUE_TYPE_OBJECT = 4,
OS_LOG_BUFFER_VALUE_TYPE_SCALAR = 0,
OS_LOG_BUFFER_VALUE_TYPE_COUNT = 1,
OS_LOG_BUFFER_VALUE_TYPE_STRING = 2,
OS_LOG_BUFFER_VALUE_TYPE_POINTER = 3,
OS_LOG_BUFFER_VALUE_TYPE_OBJECT = 4,
);
OS_ENUM(os_log_value_subtype, uint8_t,
OS_LOG_BUFFER_VALUE_SUBTYPE_NONE = 0,
OS_LOG_BUFFER_VALUE_SUBTYPE_INTEGER = 1,
OS_LOG_BUFFER_VALUE_SUBTYPE_FLOAT = 2,
OS_LOG_BUFFER_VALUE_SUBTYPE_NONE = 0,
OS_LOG_BUFFER_VALUE_SUBTYPE_INTEGER = 1,
OS_LOG_BUFFER_VALUE_SUBTYPE_FLOAT = 2,
);
enum os_log_int_types_t {
OST_CHAR = -2,
OST_SHORT = -1,
OST_INT = 0,
OST_LONG = 1,
OST_LONGLONG = 2,
OST_SIZE = 3,
OST_INTMAX = 4,
OST_PTRDIFF = 5,
OST_CHAR = -2,
OST_SHORT = -1,
OST_INT = 0,
OST_LONG = 1,
OST_LONGLONG = 2,
OST_SIZE = 3,
OST_INTMAX = 4,
OST_PTRDIFF = 5,
};
union os_log_format_types_u {
uint16_t u16;
uint32_t u32;
uint64_t u64;
char ch;
short s;
int i;
void *p;
char *pch;
wchar_t wch;
wchar_t *pwch;
size_t z;
intmax_t im;
ptrdiff_t pd;
long l;
long long ll;
double d;
float f;
long double ld;
uint16_t u16;
uint32_t u32;
uint64_t u64;
char ch;
short s;
int i;
void *p;
char *pch;
wchar_t wch;
wchar_t *pwch;
size_t z;
intmax_t im;
ptrdiff_t pd;
long l;
long long ll;
double d;
float f;
long double ld;
};
typedef struct os_log_format_value_s {
union os_log_format_types_u type;
os_log_value_type_t ctype;
uint16_t size;
union os_log_format_types_u type;
os_log_value_type_t ctype;
uint16_t size;
} *os_log_format_value_t;
typedef struct os_log_buffer_value_s {
#define OS_LOG_CONTENT_FLAG_PRIVATE 0x1
#define OS_LOG_CONTENT_FLAG_PUBLIC 0x2
uint8_t flags : 4;
os_log_value_type_t type : 4;
uint8_t size;
uint8_t value[];
uint8_t flags : 4;
os_log_value_type_t type : 4;
uint8_t size;
uint8_t value[];
} *os_log_buffer_value_t;
typedef struct os_log_buffer_s {
#define OS_LOG_BUFFER_HAS_PRIVATE 0x1
#define OS_LOG_BUFFER_HAS_NON_SCALAR 0x2
#define OS_LOG_BUFFER_MAX_SIZE 1024
uint8_t flags;
uint8_t arg_cnt;
uint8_t content[];
uint8_t flags;
uint8_t arg_cnt;
uint8_t content[];
} *os_log_buffer_t;
typedef struct os_log_buffer_context_s {
os_log_t log;
os_log_buffer_t buffer;
os_log_t log;
os_log_buffer_t buffer;
// sizes and offsets
uint16_t content_off; // offset into buffer->content
uint16_t content_sz; // size not including the header
uint8_t arg_idx;
// sizes and offsets
uint16_t content_off; // offset into buffer->content
uint16_t content_sz; // size not including the header
uint8_t arg_idx;
} *os_log_buffer_context_t;
static bool
_os_log_encode_arg(const void *arg, uint16_t arg_len, os_log_value_type_t ctype, uint8_t flags, os_log_buffer_context_t context)
{
os_log_buffer_value_t content = (os_log_buffer_value_t) &context->buffer->content[context->content_off];
size_t content_sz = sizeof(*content) + arg_len;
os_log_buffer_value_t content = (os_log_buffer_value_t) &context->buffer->content[context->content_off];
size_t content_sz = sizeof(*content) + arg_len;
content->type = ctype;
content->flags = flags;
content->type = ctype;
content->flags = flags;
switch (ctype) {
case OS_LOG_BUFFER_VALUE_TYPE_COUNT:
case OS_LOG_BUFFER_VALUE_TYPE_SCALAR:
if ((context->content_off + content_sz) > context->content_sz) {
return false;
}
switch (ctype) {
case OS_LOG_BUFFER_VALUE_TYPE_COUNT:
case OS_LOG_BUFFER_VALUE_TYPE_SCALAR:
if ((context->content_off + content_sz) > context->content_sz) {
return false;
}
memcpy(content->value, arg, arg_len);
content->size = arg_len;
context->content_off += content_sz;
break;
memcpy(content->value, arg, arg_len);
content->size = arg_len;
context->content_off += content_sz;
break;
case OS_LOG_BUFFER_VALUE_TYPE_STRING:
case OS_LOG_BUFFER_VALUE_TYPE_POINTER:
case OS_LOG_BUFFER_VALUE_TYPE_OBJECT:
memcpy(content->value, arg, arg_len);
context->buffer->flags |= OS_LOG_BUFFER_HAS_NON_SCALAR;
content->size = arg_len;
context->content_off += content_sz;
break;
case OS_LOG_BUFFER_VALUE_TYPE_STRING:
case OS_LOG_BUFFER_VALUE_TYPE_POINTER:
case OS_LOG_BUFFER_VALUE_TYPE_OBJECT:
memcpy(content->value, arg, arg_len);
context->buffer->flags |= OS_LOG_BUFFER_HAS_NON_SCALAR;
content->size = arg_len;
context->content_off += content_sz;
break;
}
}
if (content->flags & OS_LOG_CONTENT_FLAG_PRIVATE) {
context->buffer->flags |= OS_LOG_BUFFER_HAS_PRIVATE;
}
if (content->flags & OS_LOG_CONTENT_FLAG_PRIVATE) {
context->buffer->flags |= OS_LOG_BUFFER_HAS_PRIVATE;
}
context->arg_idx++;
context->arg_idx++;
return true;
return true;
}
static bool
_os_log_encode(const char *format, va_list args, int saved_errno, os_log_buffer_context_t context)
{
const char *percent = strchr(format, '%');
const char *percent = strchr(format, '%');
while (percent != NULL) {
++percent;
if (percent[0] != '%') {
struct os_log_format_value_s value;
uint8_t flags = 0;
int type = T_INT;
bool long_double = false;
int prec = 0;
char ch;
while (percent != NULL) {
++percent;
if (percent[0] != '%') {
struct os_log_format_value_s value;
uint8_t flags = 0;
int type = T_INT;
bool long_double = false;
int prec = 0;
char ch;
for (bool done = false; !done; percent++) {
switch (ch = percent[0]) {
/* type of types or other */
case 'l': // longer
type++;
break;
for (bool done = false; !done; percent++) {
switch (ch = percent[0]) {
/* type of types or other */
case 'l': // longer
type++;
break;
case 'h': // shorter
type--;
break;
case 'h': // shorter
type--;
break;
case 'z':
type = T_SIZE;
break;
case 'z':
type = T_SIZE;
break;
case 'j':
type = T_INTMAX;
break;
case 'j':
type = T_INTMAX;
break;
case 't':
type = T_PTRDIFF;
break;
case 't':
type = T_PTRDIFF;
break;
case '.': // precision
if ((percent[1]) == '*') {
prec = va_arg(args, int);
_os_log_encode_arg(&prec, sizeof(prec), OS_LOG_BUFFER_VALUE_TYPE_COUNT, flags, context);
percent++;
continue;
} else {
// we have to read the precision and do the right thing
const char *fmt = percent + 1;
prec = 0;
while (isdigit(ch = *fmt++)) {
prec = 10 * prec + (ch - '0');
}
case '.': // precision
if ((percent[1]) == '*') {
prec = va_arg(args, int);
_os_log_encode_arg(&prec, sizeof(prec), OS_LOG_BUFFER_VALUE_TYPE_COUNT, flags, context);
percent++;
continue;
} else {
// we have to read the precision and do the right thing
const char *fmt = percent + 1;
prec = 0;
while (isdigit(ch = *fmt++)) {
prec = 10 * prec + (ch - '0');
}
if (prec > 1024) {
prec = 1024;
}
if (prec > 1024) {
prec = 1024;
}
_os_log_encode_arg(&prec, sizeof(prec), OS_LOG_BUFFER_VALUE_TYPE_COUNT, flags, context);
}
break;
_os_log_encode_arg(&prec, sizeof(prec), OS_LOG_BUFFER_VALUE_TYPE_COUNT, flags, context);
}
break;
case '-': // left-align
case '+': // force sign
case ' ': // prefix non-negative with space
case '#': // alternate
case '\'': // group by thousands
break;
case '-': // left-align
case '+': // force sign
case ' ': // prefix non-negative with space
case '#': // alternate
case '\'': // group by thousands
break;
case '{': // annotated symbols
for (const char *curr2 = percent + 1; (ch = (*curr2)) != 0; curr2++) {
if (ch == '}') {
if (strncmp(percent + 1, "private", MIN(curr2 - percent - 1, 7)) == 0) {
flags |= OS_LOG_CONTENT_FLAG_PRIVATE;
}
percent = curr2;
break;
}
}
break;
case '{': // annotated symbols
for (const char *curr2 = percent + 1; (ch = (*curr2)) != 0; curr2++) {
if (ch == '}') {
if (strncmp(percent + 1, "private", MIN(curr2 - percent - 1, 7)) == 0) {
flags |= OS_LOG_CONTENT_FLAG_PRIVATE;
}
percent = curr2;
break;
}
}
break;
/* fixed types */
case 'd': // integer
case 'i': // integer
case 'o': // octal
case 'u': // unsigned
case 'x': // hex
case 'X': // upper-hex
switch (type) {
case T_CHAR:
value.type.ch = va_arg(args, int);
_os_log_encode_arg(&value.type.ch, sizeof(value.type.ch), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
/* fixed types */
case 'd': // integer
case 'i': // integer
case 'o': // octal
case 'u': // unsigned
case 'x': // hex
case 'X': // upper-hex
switch (type) {
case T_CHAR:
value.type.ch = va_arg(args, int);
_os_log_encode_arg(&value.type.ch, sizeof(value.type.ch), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_SHORT:
value.type.s = va_arg(args, int);
_os_log_encode_arg(&value.type.s, sizeof(value.type.s), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_SHORT:
value.type.s = va_arg(args, int);
_os_log_encode_arg(&value.type.s, sizeof(value.type.s), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_INT:
value.type.i = va_arg(args, int);
_os_log_encode_arg(&value.type.i, sizeof(value.type.i), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_INT:
value.type.i = va_arg(args, int);
_os_log_encode_arg(&value.type.i, sizeof(value.type.i), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_LONG:
value.type.l = va_arg(args, long);
_os_log_encode_arg(&value.type.l, sizeof(value.type.l), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_LONG:
value.type.l = va_arg(args, long);
_os_log_encode_arg(&value.type.l, sizeof(value.type.l), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_LONGLONG:
value.type.ll = va_arg(args, long long);
_os_log_encode_arg(&value.type.ll, sizeof(value.type.ll), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_LONGLONG:
value.type.ll = va_arg(args, long long);
_os_log_encode_arg(&value.type.ll, sizeof(value.type.ll), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_SIZE:
value.type.z = va_arg(args, size_t);
_os_log_encode_arg(&value.type.z, sizeof(value.type.z), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_SIZE:
value.type.z = va_arg(args, size_t);
_os_log_encode_arg(&value.type.z, sizeof(value.type.z), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_INTMAX:
value.type.im = va_arg(args, intmax_t);
_os_log_encode_arg(&value.type.im, sizeof(value.type.im), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_INTMAX:
value.type.im = va_arg(args, intmax_t);
_os_log_encode_arg(&value.type.im, sizeof(value.type.im), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_PTRDIFF:
value.type.pd = va_arg(args, ptrdiff_t);
_os_log_encode_arg(&value.type.pd, sizeof(value.type.pd), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
case T_PTRDIFF:
value.type.pd = va_arg(args, ptrdiff_t);
_os_log_encode_arg(&value.type.pd, sizeof(value.type.pd), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
break;
default:
return false;
}
done = true;
break;
default:
return false;
}
done = true;
break;
case 'P': // pointer data
if (prec > 0) { // only encode a pointer if we have been given a length
context->buffer->flags |= OS_LOG_BUFFER_HAS_NON_SCALAR;
value.type.p = va_arg(args, void *);
case 'P': // pointer data
if (prec > 0) { // only encode a pointer if we have been given a length
context->buffer->flags |= OS_LOG_BUFFER_HAS_NON_SCALAR;
value.type.p = va_arg(args, void *);
_os_log_encode_arg(value.type.p, prec, OS_LOG_BUFFER_VALUE_TYPE_POINTER, flags, context);
prec = 0;
done = true;
}
break;
_os_log_encode_arg(value.type.p, prec, OS_LOG_BUFFER_VALUE_TYPE_POINTER, flags, context);
prec = 0;
done = true;
}
break;
case 'L': // long double
long_double = true;
break;
case 'L': // long double
long_double = true;
break;
case 'a': case 'A': case 'e': case 'E': // floating types
case 'f': case 'F': case 'g': case 'G':
if (long_double) {
value.type.ld = va_arg(args, long double);
_os_log_encode_arg(&value.type.ld, sizeof(value.type.ld), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
} else {
value.type.d = va_arg(args, double);
_os_log_encode_arg(&value.type.d, sizeof(value.type.d), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
}
done = true;
break;
case 'a': case 'A': case 'e': case 'E': // floating types
case 'f': case 'F': case 'g': case 'G':
if (long_double) {
value.type.ld = va_arg(args, long double);
_os_log_encode_arg(&value.type.ld, sizeof(value.type.ld), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
} else {
value.type.d = va_arg(args, double);
_os_log_encode_arg(&value.type.d, sizeof(value.type.d), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
}
done = true;
break;
case 'c': // char
value.type.ch = va_arg(args, int);
_os_log_encode_arg(&value.type.ch, sizeof(value.type.ch), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
done = true;
break;
case 'c': // char
value.type.ch = va_arg(args, int);
_os_log_encode_arg(&value.type.ch, sizeof(value.type.ch), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
done = true;
break;
case 'C': // wide-char
value.type.wch = va_arg(args, wint_t);
_os_log_encode_arg(&value.type.wch, sizeof(value.type.wch), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
done = true;
break;
case 'C': // wide-char
value.type.wch = va_arg(args, wint_t);
_os_log_encode_arg(&value.type.wch, sizeof(value.type.wch), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
done = true;
break;
#if 0
// String types get sent from Swift as NSString objects.
case 's': // string
value.type.pch = va_arg(args, char *);
context->buffer->flags |= OS_LOG_BUFFER_HAS_NON_SCALAR;
_os_log_encode_arg(&value.type.pch, sizeof(value.type.pch), OS_LOG_BUFFER_VALUE_TYPE_STRING, flags, context);
prec = 0;
done = true;
break;
// String types get sent from Swift as NSString objects.
case 's': // string
value.type.pch = va_arg(args, char *);
context->buffer->flags |= OS_LOG_BUFFER_HAS_NON_SCALAR;
_os_log_encode_arg(&value.type.pch, sizeof(value.type.pch), OS_LOG_BUFFER_VALUE_TYPE_STRING, flags, context);
prec = 0;
done = true;
break;
#endif
case '@': // CFTypeRef aka NSObject *
value.type.p = va_arg(args, void *);
context->buffer->flags |= OS_LOG_BUFFER_HAS_NON_SCALAR;
_os_log_encode_arg(&value.type.p, sizeof(value.type.p), OS_LOG_BUFFER_VALUE_TYPE_OBJECT, flags, context);
done = true;
break;
case '@': // CFTypeRef aka NSObject *
value.type.p = va_arg(args, void *);
context->buffer->flags |= OS_LOG_BUFFER_HAS_NON_SCALAR;
_os_log_encode_arg(&value.type.p, sizeof(value.type.p), OS_LOG_BUFFER_VALUE_TYPE_OBJECT, flags, context);
done = true;
break;
case 'm':
value.type.i = saved_errno;
_os_log_encode_arg(&value.type.i, sizeof(value.type.i), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
done = true;
break;
case 'm':
value.type.i = saved_errno;
_os_log_encode_arg(&value.type.i, sizeof(value.type.i), OS_LOG_BUFFER_VALUE_TYPE_SCALAR, flags, context);
done = true;
break;
default:
if (isdigit(ch)) { // [0-9]
continue;
}
return false;
}
default:
if (isdigit(ch)) { // [0-9]
continue;
}
return false;
}
if (done) {
percent = strchr(percent, '%'); // Find next format
break;
}
}
} else {
percent = strchr(percent+1, '%'); // Find next format after %%
}
}
if (done) {
percent = strchr(percent, '%'); // Find next format
break;
}
}
} else {
percent = strchr(percent+1, '%'); // Find next format after %%
}
}
context->buffer->arg_cnt = context->arg_idx;
context->content_sz = context->content_off;
context->arg_idx = context->content_off = 0;
context->buffer->arg_cnt = context->arg_idx;
context->content_sz = context->content_off;
context->arg_idx = context->content_off = 0;
return true;
return true;
}
#include "swift/Runtime/Config.h"
@@ -401,22 +401,22 @@ SWIFT_CC(swift) __attribute__((__visibility__("default")))
extern "C" void
_swift_os_log(void *dso, os_log_t oslog, os_log_type_t type, const char *format, va_list args)
{
struct os_log_buffer_context_s context = { 0, 0, 0, 0, 0 };
os_log_buffer_t buffer = (os_log_buffer_t)alloca(OS_LOG_BUFFER_MAX_SIZE);
int save_errno = errno; // %m
struct os_log_buffer_context_s context = { 0, 0, 0, 0, 0 };
os_log_buffer_t buffer = (os_log_buffer_t)alloca(OS_LOG_BUFFER_MAX_SIZE);
int save_errno = errno; // %m
memset(buffer, 0, OS_LOG_BUFFER_MAX_SIZE);
memset(buffer, 0, OS_LOG_BUFFER_MAX_SIZE);
context.buffer = buffer;
context.content_sz = OS_LOG_BUFFER_MAX_SIZE - sizeof(*buffer);
context.buffer = buffer;
context.content_sz = OS_LOG_BUFFER_MAX_SIZE - sizeof(*buffer);
if (_os_log_encode(format, args, save_errno, &context)) {
_os_log_impl(dso, oslog, type, format, (uint8_t *)buffer, context.content_sz);
}
if (_os_log_encode(format, args, save_errno, &context)) {
_os_log_impl(dso, oslog, type, format, (uint8_t *)buffer, context.content_sz);
}
}
SWIFT_CC(swift) __attribute__((__visibility__("default")))
extern "C" os_log_t
_swift_os_log_default(void) {
return OS_LOG_DEFAULT;
return OS_LOG_DEFAULT;
}

View File

@@ -51,106 +51,106 @@ SWIFT_RUNTIME_STDLIB_INTERFACE
SWIFT_DISPATCH_RETURNS_RETAINED
__swift_shims_dispatch_block_t
_swift_dispatch_block_create_with_qos_class(
__swift_shims_dispatch_block_flags_t flags,
__swift_shims_qos_class_t qos,
int relative_priority,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NONNULL block);
__swift_shims_dispatch_block_flags_t flags,
__swift_shims_qos_class_t qos,
int relative_priority,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NONNULL block);
SWIFT_RUNTIME_STDLIB_INTERFACE
SWIFT_DISPATCH_RETURNS_RETAINED
__swift_shims_dispatch_block_t
_swift_dispatch_block_create_noescape(
__swift_shims_dispatch_block_flags_t flags,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NOESCAPE block);
__swift_shims_dispatch_block_flags_t flags,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NOESCAPE block);
SWIFT_RUNTIME_STDLIB_INTERFACE
int _swift_dispatch_block_wait(
__swift_shims_dispatch_block_t block,
unsigned long long timeout);
__swift_shims_dispatch_block_t block,
unsigned long long timeout);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_block_notify(
__swift_shims_dispatch_block_t block,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t notifier);
__swift_shims_dispatch_block_t block,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t notifier);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_block_cancel(
__swift_shims_dispatch_block_t block);
__swift_shims_dispatch_block_t block);
SWIFT_RUNTIME_STDLIB_INTERFACE
int _swift_dispatch_block_testcancel(
__swift_shims_dispatch_block_t block);
__swift_shims_dispatch_block_t block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_async(
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_sync(
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_barrier_async(
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_group_async(
__swift_shims_dispatch_group_t group,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
__swift_shims_dispatch_group_t group,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_group_notify(
__swift_shims_dispatch_group_t group,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
__swift_shims_dispatch_group_t group,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_after(
__swift_shims_dispatch_time_t when,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
__swift_shims_dispatch_time_t when,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_apply_current(
unsigned int iterations,
void SWIFT_DISPATCH_NOESCAPE (^block)(long));
unsigned int iterations,
void SWIFT_DISPATCH_NOESCAPE (^block)(long));
SWIFT_RUNTIME_STDLIB_INTERFACE
SWIFT_DISPATCH_RETURNS_RETAINED
__swift_shims_dispatch_data_t
_swift_dispatch_data_create(
const void *buffer,
__swift_size_t size,
__swift_shims_dispatch_queue_t SWIFT_DISPATCH_NULLABLE queue,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NULLABLE destructor);
const void *buffer,
__swift_size_t size,
__swift_shims_dispatch_queue_t SWIFT_DISPATCH_NULLABLE queue,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NULLABLE destructor);
typedef unsigned int (^__swift_shims_dispatch_data_applier)(__swift_shims_dispatch_data_t, __swift_size_t, const void *, __swift_size_t);
SWIFT_RUNTIME_STDLIB_INTERFACE
unsigned int
_swift_dispatch_data_apply(
__swift_shims_dispatch_data_t data,
__swift_shims_dispatch_data_applier SWIFT_DISPATCH_NOESCAPE applier);
__swift_shims_dispatch_data_t data,
__swift_shims_dispatch_data_applier SWIFT_DISPATCH_NOESCAPE applier);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_source_set_event_handler(
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NULLABLE block);
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NULLABLE block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_source_set_cancel_handler(
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NULLABLE block);
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NULLABLE block);
SWIFT_RUNTIME_STDLIB_INTERFACE
void _swift_dispatch_source_set_registration_handler(
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NULLABLE block);
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t SWIFT_DISPATCH_NULLABLE block);
#ifdef __cplusplus
}} // extern "C", namespace swift

View File

@@ -1056,11 +1056,11 @@ public postfix func -- (lhs: inout ${Self}) -> ${Self} {
fatalError("-- is not available")
}
extension ${Self} {
@available(*, unavailable, message: "Please use the `abs(_:)` free function")
public static func abs(_ x: ${Self}) -> ${Self} {
fatalError("unavailable")
}
extension ${Self} {
@available(*, unavailable, message: "Please use the `abs(_:)` free function")
public static func abs(_ x: ${Self}) -> ${Self} {
fatalError("unavailable")
}
}
% if bits == 80:

View File

@@ -38,155 +38,155 @@ static typename DestType<FromTy>::type cast(FromTy value) {
__swift_shims_dispatch_block_t
swift::_swift_dispatch_block_create_with_qos_class(
__swift_shims_dispatch_block_flags_t flags,
__swift_shims_qos_class_t qos,
int relative_priority,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_block_flags_t flags,
__swift_shims_qos_class_t qos,
int relative_priority,
__swift_shims_dispatch_block_t block)
{
return dispatch_block_create_with_qos_class(
cast(flags), cast(qos), relative_priority, cast(block));
return dispatch_block_create_with_qos_class(
cast(flags), cast(qos), relative_priority, cast(block));
}
__swift_shims_dispatch_block_t
swift::_swift_dispatch_block_create_noescape(
__swift_shims_dispatch_block_flags_t flags,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_block_flags_t flags,
__swift_shims_dispatch_block_t block)
{
return dispatch_block_create(cast(flags), cast(block));
return dispatch_block_create(cast(flags), cast(block));
}
int
swift::_swift_dispatch_block_wait(
__swift_shims_dispatch_block_t block,
unsigned long long timeout)
__swift_shims_dispatch_block_t block,
unsigned long long timeout)
{
return dispatch_block_wait(block, timeout);
return dispatch_block_wait(block, timeout);
}
void
swift::_swift_dispatch_block_notify(
__swift_shims_dispatch_block_t block,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t notifier)
__swift_shims_dispatch_block_t block,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t notifier)
{
dispatch_block_notify(cast(block), cast(queue), cast(notifier));
dispatch_block_notify(cast(block), cast(queue), cast(notifier));
}
void
swift::_swift_dispatch_block_cancel(
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_block_t block)
{
dispatch_block_cancel(cast(block));
dispatch_block_cancel(cast(block));
}
int
swift::_swift_dispatch_block_testcancel(
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_block_t block)
{
return dispatch_block_testcancel(cast(block));
return dispatch_block_testcancel(cast(block));
}
void
swift::_swift_dispatch_async(
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
{
dispatch_async(cast(queue), cast(block));
dispatch_async(cast(queue), cast(block));
}
void
swift::_swift_dispatch_barrier_async(
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
{
dispatch_barrier_async(cast(queue), cast(block));
dispatch_barrier_async(cast(queue), cast(block));
}
void
swift::_swift_dispatch_group_async(
__swift_shims_dispatch_group_t group,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_group_t group,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
{
dispatch_group_async((dispatch_group_t)group, cast(queue), cast(block));
dispatch_group_async((dispatch_group_t)group, cast(queue), cast(block));
}
void
swift::_swift_dispatch_group_notify(
__swift_shims_dispatch_group_t group,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_group_t group,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
{
dispatch_group_notify((dispatch_group_t)group, cast(queue), cast(block));
dispatch_group_notify((dispatch_group_t)group, cast(queue), cast(block));
}
void
swift::_swift_dispatch_sync(
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
{
dispatch_sync(cast(queue), cast(block));
dispatch_sync(cast(queue), cast(block));
}
void
swift::_swift_dispatch_after(
__swift_shims_dispatch_time_t when,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_time_t when,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t block)
{
dispatch_after((dispatch_time_t)when, cast(queue), cast(block));
dispatch_after((dispatch_time_t)when, cast(queue), cast(block));
}
void
swift::_swift_dispatch_apply_current(
unsigned int iterations,
void SWIFT_DISPATCH_NOESCAPE (^block)(long))
unsigned int iterations,
void SWIFT_DISPATCH_NOESCAPE (^block)(long))
{
dispatch_apply(iterations, (dispatch_queue_t _Nonnull)0, ^(size_t i){
block((long)i);
});
dispatch_apply(iterations, (dispatch_queue_t _Nonnull)0, ^(size_t i){
block((long)i);
});
}
__swift_shims_dispatch_data_t
swift::_swift_dispatch_data_create(
const void *buffer,
__swift_size_t size,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t destructor)
const void *buffer,
__swift_size_t size,
__swift_shims_dispatch_queue_t queue,
__swift_shims_dispatch_block_t destructor)
{
return dispatch_data_create(buffer, size, cast(queue), cast(destructor));
return dispatch_data_create(buffer, size, cast(queue), cast(destructor));
}
unsigned int
swift::_swift_dispatch_data_apply(
__swift_shims_dispatch_data_t data,
__swift_shims_dispatch_data_applier SWIFT_DISPATCH_NOESCAPE applier)
__swift_shims_dispatch_data_t data,
__swift_shims_dispatch_data_applier SWIFT_DISPATCH_NOESCAPE applier)
{
return dispatch_data_apply(data, ^bool(dispatch_data_t data, size_t off, const void *loc, size_t size){
return applier(data, off, loc, size);
});
return dispatch_data_apply(data, ^bool(dispatch_data_t data, size_t off, const void *loc, size_t size){
return applier(data, off, loc, size);
});
}
void
swift::_swift_dispatch_source_set_event_handler(
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t block)
{
dispatch_source_set_event_handler((dispatch_source_t)source, cast(block));
dispatch_source_set_event_handler((dispatch_source_t)source, cast(block));
}
void
swift::_swift_dispatch_source_set_cancel_handler(
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t block)
{
dispatch_source_set_cancel_handler((dispatch_source_t)source, cast(block));
dispatch_source_set_cancel_handler((dispatch_source_t)source, cast(block));
}
void
swift::_swift_dispatch_source_set_registration_handler(
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t block)
__swift_shims_dispatch_source_t source,
__swift_shims_dispatch_block_t block)
{
dispatch_source_set_registration_handler((dispatch_source_t)source, cast(block));
dispatch_source_set_registration_handler((dispatch_source_t)source, cast(block));
}

View File

@@ -647,7 +647,7 @@ extension BidirectionalCollection
start..<m, distance: d, choosingStartGroupBy: p)
// TTTTTTTTT s FFFFFFF m TTTTTTT e FFFFFFFF
let e = _stablyPartitionSubrange(
let e = _stablyPartitionSubrange(
m..<end, distance: n - d, choosingStartGroupBy: p)
// TTTTTTTTT s TTTTTTT m FFFFFFF e FFFFFFFF

View File

@@ -7,8 +7,8 @@
extern const NSString *const MyErrorDomain;
/// This is my cool error code.
typedef NS_ERROR_ENUM(int, MyErrorCode, MyErrorDomain) {
/// This is first error.
MyErrFirst,
/// This is second error.
MyErrSecond,
/// This is first error.
MyErrFirst,
/// This is second error.
MyErrSecond,
};

View File

@@ -475,7 +475,7 @@ SourceKit can provide information about the version of the protocol that is bein
```
{
<key.request>: (UID) <source.request.protocol_version>
<key.request>: (UID) <source.request.protocol_version>
}
```
@@ -483,8 +483,8 @@ SourceKit can provide information about the version of the protocol that is bein
```
{
<key.version_major>: (int64) // The major version number in a version string
<key.version_minor>: (int64) // The minor version number in a version string
<key.version_major>: (int64) // The major version number in a version string
<key.version_minor>: (int64) // The minor version number in a version string
}
```
@@ -500,7 +500,7 @@ or
$ sourcekitd-repl
Welcome to SourceKit. Type ':help' for assistance.
(SourceKit) {
key.request: source.request.protocol_version
key.request: source.request.protocol_version
}
```
@@ -514,14 +514,14 @@ To gather documentation, SourceKit must be given either the name of a module (ke
```
{
<key.request>: (UID) <source.request.cursorinfo>,
[opt] <key.sourcetext>: (string) // Source contents.
[opt] <key.sourcefile>: (string) // Absolute path to the file.
// **Require**: key.sourcetext or key.sourcefile
[opt] <key.offset>: (int64) // Byte offset of code point inside the source contents.
[opt] <key.usr>: (string) // USR string for the entity.
// **Require**: key.offset or key.usr
[opt] <key.compilerargs>: [string*] // Array of zero or more strings for the compiler arguments,
<key.request>: (UID) <source.request.cursorinfo>,
[opt] <key.sourcetext>: (string) // Source contents.
[opt] <key.sourcefile>: (string) // Absolute path to the file.
// **Require**: key.sourcetext or key.sourcefile
[opt] <key.offset>: (int64) // Byte offset of code point inside the source contents.
[opt] <key.usr>: (string) // USR string for the entity.
// **Require**: key.offset or key.usr
[opt] <key.compilerargs>: [string*] // Array of zero or more strings for the compiler arguments,
// e.g ["-sdk", "/path/to/sdk"]. If key.sourcefile is provided,
// these must include the path to that file.
}