//===----------------------------------------------------------------------===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2022 - 2025 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// #include "swift/IDE/IDEBridging.h" #include "llvm/Support/raw_ostream.h" #include ResolvedLoc::ResolvedLoc(swift::CharSourceRange range, std::vector labelRanges, std::optional firstTrailingLabel, LabelRangeType labelType, bool isActive, ResolvedLocContext context) : range(range), labelRanges(labelRanges), firstTrailingLabel(firstTrailingLabel), labelType(labelType), isActive(isActive), context(context) {} ResolvedLoc::ResolvedLoc() {} BridgedResolvedLoc::BridgedResolvedLoc(swift::CharSourceRange range, BridgedCharSourceRangeVector labelRanges, unsigned firstTrailingLabel, LabelRangeType labelType, bool isActive, ResolvedLocContext context) : resolvedLoc( new ResolvedLoc(range, labelRanges.takeUnbridged(), firstTrailingLabel == UINT_MAX ? std::nullopt : std::optional(firstTrailingLabel), labelType, isActive, context)) {} BridgedResolvedLocVector::BridgedResolvedLocVector() : vector(new std::vector()) {} void BridgedResolvedLocVector::push_back(BridgedResolvedLoc Loc) { static_cast *>(vector)->push_back( Loc.takeUnbridged()); } BridgedResolvedLocVector::BridgedResolvedLocVector(void *opaqueValue) : vector(opaqueValue) {} void *BridgedResolvedLocVector::getOpaqueValue() const { return vector; }