@@ -4360,6 +4360,10 @@ class OpaqueValueExpr : public Expr {
4360
4360
Bits.OpaqueValueExpr .IsPlaceholder = isPlaceholder;
4361
4361
}
4362
4362
4363
+ static OpaqueValueExpr *
4364
+ createImplicit (ASTContext &ctx, Type Ty, bool isPlaceholder = false ,
4365
+ AllocationArena arena = AllocationArena::Permanent);
4366
+
4363
4367
// / Whether this opaque value expression represents a placeholder that
4364
4368
// / is injected before type checking to act as a placeholder for some
4365
4369
// / value to be specified later.
@@ -6022,17 +6026,20 @@ class TypeJoinExpr final : public Expr,
6022
6026
static TypeJoinExpr *
6023
6027
createImpl (ASTContext &ctx,
6024
6028
llvm::PointerUnion<DeclRefExpr *, TypeBase *> varOrType,
6025
- ArrayRef<Expr *> elements);
6029
+ ArrayRef<Expr *> elements,
6030
+ AllocationArena arena = AllocationArena::Permanent);
6026
6031
6027
6032
public:
6028
- static TypeJoinExpr *create (ASTContext &ctx, DeclRefExpr *var,
6029
- ArrayRef<Expr *> exprs) {
6030
- return createImpl (ctx, var, exprs);
6033
+ static TypeJoinExpr *
6034
+ create (ASTContext &ctx, DeclRefExpr *var, ArrayRef<Expr *> exprs,
6035
+ AllocationArena arena = AllocationArena::Permanent) {
6036
+ return createImpl (ctx, var, exprs, arena);
6031
6037
}
6032
6038
6033
- static TypeJoinExpr *create (ASTContext &ctx, Type joinType,
6034
- ArrayRef<Expr *> exprs) {
6035
- return createImpl (ctx, joinType.getPointer (), exprs);
6039
+ static TypeJoinExpr *
6040
+ create (ASTContext &ctx, Type joinType, ArrayRef<Expr *> exprs,
6041
+ AllocationArena arena = AllocationArena::Permanent) {
6042
+ return createImpl (ctx, joinType.getPointer (), exprs, arena);
6036
6043
}
6037
6044
6038
6045
SourceLoc getLoc () const { return SourceLoc (); }
0 commit comments