@@ -83,6 +83,7 @@ struct AnyRequestVTable {
83
83
const std::function<void (const void *, DiagnosticEngine &)> noteCycleStep;
84
84
const std::function<SourceLoc(const void *)> getNearestLoc;
85
85
const std::function<bool (const void *)> isCached;
86
+ bool isDependencySource;
86
87
87
88
template <typename Request,
88
89
typename std::enable_if<Request::isEverCached>::type * = nullptr >
@@ -99,6 +100,7 @@ struct AnyRequestVTable {
99
100
&Impl<Request>::noteCycleStep,
100
101
&Impl<Request>::getNearestLoc,
101
102
&Impl<Request>::isCached,
103
+ Request::isDependencySource,
102
104
};
103
105
return &vtable;
104
106
}
@@ -118,6 +120,7 @@ struct AnyRequestVTable {
118
120
&Impl<Request>::noteCycleStep,
119
121
&Impl<Request>::getNearestLoc,
120
122
[](auto ){ return false ; },
123
+ Request::isDependencySource,
121
124
};
122
125
return &vtable;
123
126
}
@@ -224,6 +227,10 @@ class AnyRequestBase {
224
227
return getVTable ()->isCached (getRawStorage ());
225
228
}
226
229
230
+ bool isDependencySource () const {
231
+ return getVTable ()->isDependencySource ;
232
+ }
233
+
227
234
// / Compare two instances for equality.
228
235
friend bool operator ==(const AnyRequestBase<Derived> &lhs,
229
236
const AnyRequestBase<Derived> &rhs) {
0 commit comments