本文整理汇总了C++中UIdent类的典型用法代码示例。如果您正苦于以下问题:C++ UIdent类的具体用法?C++ UIdent怎么用?C++ UIdent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UIdent类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: compareDictKeys
bool sourcekitd::compareDictKeys(UIdent LHS, UIdent RHS) {
if (LHS == RHS)
return false;
unsigned LHSOrder = findPrintOrderForDictKey(LHS);
unsigned RHSOrder = findPrintOrderForDictKey(RHS);
if (LHSOrder == RHSOrder)
return LHS.getName() < RHS.getName();
return LHSOrder < RHSOrder;
}
开发者ID:0x4d4746h,项目名称:swift,代码行数:9,代码来源:sourcekitdAPI-Common.cpp
示例2: SKDUIDFromUIdent
sourcekitd_uid_t sourcekitd::SKDUIDFromUIdent(UIdent UID) {
if (void *Tag = UID.getTag())
return reinterpret_cast<sourcekitd_uid_t>(Tag);
if (UidMappingHandler) {
sourcekitd_uid_t skduid = UidMappingHandler(UID.c_str());
if (skduid) {
UID.setTag(skduid);
return skduid;
}
}
return reinterpret_cast<sourcekitd_uid_t>(UID.getAsOpaqueValue());
}
开发者ID:007Indian,项目名称:swift,代码行数:14,代码来源:sourcekitdInProc.cpp
示例3: SKDUIDFromUIdent
void CompactArrayBuilderImpl::addImpl(UIdent Val) {
if (Val.isValid()) {
sourcekitd_uid_t uid = SKDUIDFromUIdent(Val);
addScalar(uid, EntriesBuffer);
} else {
addScalar(sourcekitd_uid_t(nullptr), EntriesBuffer);
}
}
开发者ID:Daford,项目名称:swift,代码行数:8,代码来源:CompactArray.cpp
示例4: reportSemanticAnnotations
static void reportSemanticAnnotations(const SourceTextInfo &IFaceInfo,
EditorConsumer &Consumer) {
for (auto &Ref : IFaceInfo.References) {
UIdent Kind;
bool IsSystem;
if (Ref.Mod) {
Kind = SwiftLangSupport::getUIDForModuleRef();
IsSystem = Ref.Mod.isSystemModule();
} else if (Ref.Dcl) {
Kind = SwiftLangSupport::getUIDForDecl(Ref.Dcl, /*IsRef=*/true);
IsSystem = Ref.Dcl->getModuleContext()->isSystemModule();
}
if (Kind.isInvalid())
continue;
unsigned Offset = Ref.Range.Offset;
unsigned Length = Ref.Range.Length;
Consumer.handleSemanticAnnotation(Offset, Length, Kind, IsSystem);
}
}
开发者ID:peterfriese,项目名称:swift,代码行数:19,代码来源:SwiftEditorInterfaceGen.cpp
示例5: visitImports
bool IndexSwiftASTWalker::visitImports(SourceFileOrModule TopMod,
llvm::SmallPtrSet<Module *, 16> &Visited) {
// Dependencies of the stdlib module (like SwiftShims module) are
// implementation details.
if (TopMod.getModule().isStdlibModule())
return true;
bool IsNew = Visited.insert(&TopMod.getModule()).second;
if (!IsNew)
return true;
SmallVector<Module::ImportedModule, 8> Imports;
TopMod.getImportedModules(Imports);
llvm::SmallPtrSet<Module *, 8> Reported;
for (auto Import : Imports) {
Module *Mod = Import.second;
bool NewReport = Reported.insert(Mod).second;
if (!NewReport)
continue;
// FIXME: Handle modules with multiple source files; these will fail on
// getModuleFilename() (by returning an empty path). Note that such modules
// may be heterogeneous.
StringRef Path = Mod->getModuleFilename();
if (Path.empty() || Path == TopMod.getFilename())
continue; // this is a submodule.
UIdent ImportKind;
for (auto File : Mod->getFiles()) {
switch (File->getKind()) {
case FileUnitKind::Source:
assert(ImportKind.isInvalid() && "cannot handle multi-file modules");
ImportKind = KindImportSourceFile;
break;
case FileUnitKind::Builtin:
case FileUnitKind::Derived:
break;
case FileUnitKind::SerializedAST:
assert(ImportKind.isInvalid() && "cannot handle multi-file modules");
ImportKind = KindImportModuleSwift;
break;
case FileUnitKind::ClangModule:
assert(ImportKind.isInvalid() && "cannot handle multi-file modules");
ImportKind = KindImportModuleClang;
break;
}
}
if (ImportKind.isInvalid())
continue;
StringRef Hash;
SmallString<32> HashBuf;
if (ImportKind != KindImportModuleClang) {
llvm::raw_svector_ostream HashOS(HashBuf);
getModuleHash(*Mod, HashOS);
Hash = HashOS.str();
}
if (!IdxConsumer.startDependency(ImportKind, Mod->getName().str(), Path,
Mod->isSystemModule(), Hash))
return false;
if (ImportKind != KindImportModuleClang)
if (!visitImports(*Mod, Visited))
return false;
if (!IdxConsumer.finishDependency(ImportKind))
return false;
}
return true;
}
开发者ID:AaronTKD,项目名称:swift,代码行数:71,代码来源:SwiftIndexing.cpp
注:本文中的UIdent类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论