Files
swift-mirror/include/swift/IDE/ConformingMethodList.h
Alex Hoppen fe2ae72ad2 [IDE] Rename CodeCompletion to IDEInspection in cases where the code path no longer exclusively applies to code completion
The code completio infrastructure is also being used for cursor info now, so it should no longer be called code completion.

rdar://103251187
2022-12-13 11:41:05 +01:00

56 lines
1.6 KiB
C++

//===--- ConformingMethodList.h --- -----------------------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2019 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
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_IDE_CONFORMINGMETHODLIST_H
#define SWIFT_IDE_CONFORMINGMETHODLIST_H
#include "swift/AST/Type.h"
#include "swift/Basic/LLVM.h"
namespace swift {
class IDEInspectionCallbacksFactory;
namespace ide {
/// A result item for context info query.
class ConformingMethodListResult {
public:
/// The decl context of the parsed expression.
DeclContext *DC;
/// The resolved type of the expression.
Type ExprType;
/// Methods which satisfy the criteria.
SmallVector<ValueDecl *, 0> Members;
ConformingMethodListResult(DeclContext *DC, Type ExprType)
: DC(DC), ExprType(ExprType) {}
};
/// An abstract base class for consumers of context info results.
class ConformingMethodListConsumer {
public:
virtual ~ConformingMethodListConsumer() {}
virtual void handleResult(const ConformingMethodListResult &result) = 0;
};
/// Create a factory for code completion callbacks.
IDEInspectionCallbacksFactory *makeConformingMethodListCallbacksFactory(
ArrayRef<const char *> expectedTypeNames,
ConformingMethodListConsumer &Consumer);
} // namespace ide
} // namespace swift
#endif // SWIFT_IDE_CONFORMINGMETHODLIST_H