Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions include/swift/AST/AccessRequests.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ class AccessLevelRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<AccessLevel> evaluate(Evaluator &evaluator,
ValueDecl *decl) const;
AccessLevel evaluate(Evaluator &evaluator, ValueDecl *decl) const;

public:
// Separate caching.
Expand All @@ -65,8 +64,7 @@ class SetterAccessLevelRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<AccessLevel>
evaluate(Evaluator &evaluator, AbstractStorageDecl *decl) const;
AccessLevel evaluate(Evaluator &evaluator, AbstractStorageDecl *decl) const;

public:
// Separate caching.
Expand All @@ -88,8 +86,7 @@ class DefaultAndMaxAccessLevelRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<DefaultAndMax>
evaluate(Evaluator &evaluator, ExtensionDecl *decl) const;
DefaultAndMax evaluate(Evaluator &evaluator, ExtensionDecl *decl) const;

public:
// Separate caching.
Expand Down
2 changes: 1 addition & 1 deletion include/swift/AST/Evaluator.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ using AbstractRequestFunction = void(void);
/// Form the specific request function for the given request type.
template<typename Request>
using RequestFunction =
llvm::Expected<typename Request::OutputType>(const Request &, Evaluator &);
typename Request::OutputType(const Request &, Evaluator &);

/// Pretty stack trace handler for an arbitrary request.
template<typename Request>
Expand Down
4 changes: 2 additions & 2 deletions include/swift/AST/IRGenRequests.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ class IRGenSourceFileRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<std::unique_ptr<llvm::Module>>
std::unique_ptr<llvm::Module>
evaluate(Evaluator &evaluator, IRGenDescriptor desc) const;

public:
Expand All @@ -142,7 +142,7 @@ class IRGenWholeModuleRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<std::unique_ptr<llvm::Module>>
std::unique_ptr<llvm::Module>
evaluate(Evaluator &evaluator, IRGenDescriptor desc) const;

public:
Expand Down
50 changes: 25 additions & 25 deletions include/swift/AST/NameLookupRequests.h
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ class SuperclassDeclRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<ClassDecl *>
ClassDecl *
evaluate(Evaluator &evaluator, NominalTypeDecl *subject) const;

public:
Expand Down Expand Up @@ -197,7 +197,7 @@ class HasMissingDesignatedInitializersRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<bool>
bool
evaluate(Evaluator &evaluator, ClassDecl *subject) const;

public:
Expand All @@ -219,7 +219,7 @@ class ExtendedNominalRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<NominalTypeDecl *>
NominalTypeDecl *
evaluate(Evaluator &evaluator, ExtensionDecl *ext) const;

public:
Expand Down Expand Up @@ -283,7 +283,7 @@ class CustomAttrNominalRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<NominalTypeDecl *>
NominalTypeDecl *
evaluate(Evaluator &evaluator, CustomAttr *attr, DeclContext *dc) const;

public:
Expand All @@ -303,7 +303,7 @@ class GetDestructorRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<DestructorDecl *>
DestructorDecl *
evaluate(Evaluator &evaluator, ClassDecl *classDecl) const;

public:
Expand All @@ -324,7 +324,7 @@ class GenericParamListRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<GenericParamList *>
GenericParamList *
evaluate(Evaluator &evaluator, GenericContext *value) const;

public:
Expand All @@ -347,7 +347,7 @@ class ExpandASTScopeRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<ast_scope::ASTScopeImpl *>
ast_scope::ASTScopeImpl *
evaluate(Evaluator &evaluator, ast_scope::ASTScopeImpl *,
ast_scope::ScopeCreator *) const;

Expand Down Expand Up @@ -407,8 +407,8 @@ class UnqualifiedLookupRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<LookupResult> evaluate(Evaluator &evaluator,
UnqualifiedLookupDescriptor desc) const;
LookupResult evaluate(Evaluator &evaluator,
UnqualifiedLookupDescriptor desc) const;
};

using QualifiedLookupResult = SmallVector<ValueDecl *, 4>;
Expand All @@ -427,7 +427,7 @@ class LookupInModuleRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<QualifiedLookupResult>
QualifiedLookupResult
evaluate(Evaluator &evaluator, const DeclContext *moduleOrFile, DeclName name,
NLKind lookupKind, namelookup::ResolutionKind resolutionKind,
const DeclContext *moduleScopeContext) const;
Expand All @@ -445,10 +445,10 @@ class AnyObjectLookupRequest
private:
friend SimpleRequest;

llvm::Expected<QualifiedLookupResult> evaluate(Evaluator &evaluator,
const DeclContext *dc,
DeclNameRef name,
NLOptions options) const;
QualifiedLookupResult evaluate(Evaluator &evaluator,
const DeclContext *dc,
DeclNameRef name,
NLOptions options) const;
};

class ModuleQualifiedLookupRequest
Expand All @@ -464,10 +464,10 @@ class ModuleQualifiedLookupRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<QualifiedLookupResult> evaluate(Evaluator &evaluator,
const DeclContext *DC,
ModuleDecl *mod, DeclNameRef name,
NLOptions opts) const;
QualifiedLookupResult evaluate(Evaluator &evaluator,
const DeclContext *DC,
ModuleDecl *mod, DeclNameRef name,
NLOptions opts) const;
};

class QualifiedLookupRequest
Expand All @@ -483,7 +483,7 @@ class QualifiedLookupRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<QualifiedLookupResult>
QualifiedLookupResult
evaluate(Evaluator &evaluator, const DeclContext *DC,
SmallVector<NominalTypeDecl *, 4> decls,
DeclNameRef name,
Expand Down Expand Up @@ -534,7 +534,7 @@ class DirectLookupRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<TinyPtrVector<ValueDecl *>>
TinyPtrVector<ValueDecl *>
evaluate(Evaluator &evaluator, DirectLookupDescriptor desc) const;
};

Expand Down Expand Up @@ -609,8 +609,8 @@ class LookupOperatorRequest
CacheKind::Uncached>;

// Evaluation.
llvm::Expected<OperatorType *> evaluate(Evaluator &evaluator,
OperatorLookupDescriptor desc) const;
OperatorType *
evaluate(Evaluator &evaluator, OperatorLookupDescriptor desc) const;
};

using LookupPrefixOperatorRequest = LookupOperatorRequest<PrefixOperatorDecl>;
Expand All @@ -631,7 +631,7 @@ class DirectOperatorLookupRequest
private:
friend SimpleRequest;

llvm::Expected<TinyPtrVector<OperatorDecl *>>
TinyPtrVector<OperatorDecl *>
evaluate(Evaluator &evaluator, OperatorLookupDescriptor descriptor,
OperatorFixity fixity) const;
};
Expand All @@ -649,7 +649,7 @@ class DirectPrecedenceGroupLookupRequest
private:
friend SimpleRequest;

llvm::Expected<TinyPtrVector<PrecedenceGroupDecl *>>
TinyPtrVector<PrecedenceGroupDecl *>
evaluate(Evaluator &evaluator, OperatorLookupDescriptor descriptor) const;
};

Expand Down Expand Up @@ -694,7 +694,7 @@ class LookupConformanceInModuleRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<ProtocolConformanceRef> evaluate(
ProtocolConformanceRef evaluate(
Evaluator &evaluator, LookupConformanceDescriptor desc) const;
};

Expand Down
4 changes: 2 additions & 2 deletions include/swift/AST/SILGenRequests.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ class SILGenSourceFileRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<std::unique_ptr<SILModule>>
std::unique_ptr<SILModule>
evaluate(Evaluator &evaluator, SILGenDescriptor desc) const;

public:
Expand All @@ -107,7 +107,7 @@ class SILGenWholeModuleRequest :
friend SimpleRequest;

// Evaluation.
llvm::Expected<std::unique_ptr<SILModule>>
std::unique_ptr<SILModule>
evaluate(Evaluator &evaluator, SILGenDescriptor desc) const;

public:
Expand Down
6 changes: 3 additions & 3 deletions include/swift/AST/SILOptimizerRequests.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ llvm::hash_code hash_value(const SILPipelineExecutionDescriptor &desc);
/// Executes a SIL pipeline plan on a SIL module.
class ExecuteSILPipelineRequest
: public SimpleRequest<ExecuteSILPipelineRequest,
bool(SILPipelineExecutionDescriptor),
evaluator::SideEffect(SILPipelineExecutionDescriptor),
CacheKind::Uncached> {
public:
using SimpleRequest::SimpleRequest;
Expand All @@ -59,8 +59,8 @@ class ExecuteSILPipelineRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<bool> evaluate(Evaluator &evaluator,
SILPipelineExecutionDescriptor desc) const;
evaluator::SideEffect
evaluate(Evaluator &evaluator, SILPipelineExecutionDescriptor desc) const;
};

void simple_display(llvm::raw_ostream &out,
Expand Down
3 changes: 2 additions & 1 deletion include/swift/AST/SILOptimizerTypeIDZone.def
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,5 @@
//===----------------------------------------------------------------------===//

SWIFT_REQUEST(SILOptimizer, ExecuteSILPipelineRequest,
bool(SILPipelineExecutionDescriptor), Uncached, NoLocationInfo)
evaluator::SideEffect(SILPipelineExecutionDescriptor),
Uncached, NoLocationInfo)
8 changes: 4 additions & 4 deletions include/swift/AST/SimpleRequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,9 +148,9 @@ SourceLoc extractNearestSourceLoc(const std::tuple<First, Rest...> &value) {
///
/// The \c Derived class needs to implement several operations. The most
/// important one takes an evaluator and the input values, then computes the
/// final result, optionally bubbling up errors from recursive evaulations:
/// final result:
/// \code
/// llvm::Expected<Output> evaluate(Evaluator &evaluator, Inputs...) const;
/// Output evaluate(Evaluator &evaluator, Inputs...) const;
/// \endcode
///
/// Cycle diagnostics can be handled in one of two ways. Either the \c Derived
Expand Down Expand Up @@ -194,7 +194,7 @@ class SimpleRequest<Derived, Output(Inputs...), Caching> {
}

template<size_t ...Indices>
llvm::Expected<Output>
Output
callDerived(Evaluator &evaluator, std::index_sequence<Indices...>) const {
static_assert(sizeof...(Indices) > 0, "Subclass must define evaluate()");
return asDerived().evaluate(evaluator, std::get<Indices>(storage)...);
Expand All @@ -214,7 +214,7 @@ class SimpleRequest<Derived, Output(Inputs...), Caching> {
: storage(inputs...) { }

/// Request evaluation function that will be registered with the evaluator.
static llvm::Expected<OutputType>
static OutputType
evaluateRequest(const Derived &request, Evaluator &evaluator) {
return request.callDerived(evaluator,
std::index_sequence_for<Inputs...>());
Expand Down
3 changes: 1 addition & 2 deletions include/swift/AST/TBDGenRequests.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,7 @@ class GenerateTBDRequest
friend SimpleRequest;

// Evaluation.
llvm::Expected<TBDFileAndSymbols> evaluate(Evaluator &evaluator,
TBDGenDescriptor desc) const;
TBDFileAndSymbols evaluate(Evaluator &evaluator, TBDGenDescriptor desc) const;
};

/// Report that a request of the given kind is being evaluated, so it
Expand Down
Loading