@@ -4350,6 +4350,10 @@ class OpaqueValueExpr : public Expr {
4350
4350
Bits.OpaqueValueExpr .IsPlaceholder = isPlaceholder;
4351
4351
}
4352
4352
4353
+ static OpaqueValueExpr *
4354
+ createImplicit (ASTContext &ctx, Type Ty, bool isPlaceholder = false ,
4355
+ AllocationArena arena = AllocationArena::Permanent);
4356
+
4353
4357
// / Whether this opaque value expression represents a placeholder that
4354
4358
// / is injected before type checking to act as a placeholder for some
4355
4359
// / value to be specified later.
@@ -6012,17 +6016,20 @@ class TypeJoinExpr final : public Expr,
6012
6016
static TypeJoinExpr *
6013
6017
createImpl (ASTContext &ctx,
6014
6018
llvm::PointerUnion<DeclRefExpr *, TypeBase *> varOrType,
6015
- ArrayRef<Expr *> elements);
6019
+ ArrayRef<Expr *> elements,
6020
+ AllocationArena arena = AllocationArena::Permanent);
6016
6021
6017
6022
public:
6018
- static TypeJoinExpr *create (ASTContext &ctx, DeclRefExpr *var,
6019
- ArrayRef<Expr *> exprs) {
6020
- return createImpl (ctx, var, exprs);
6023
+ static TypeJoinExpr *
6024
+ create (ASTContext &ctx, DeclRefExpr *var, ArrayRef<Expr *> exprs,
6025
+ AllocationArena arena = AllocationArena::Permanent) {
6026
+ return createImpl (ctx, var, exprs, arena);
6021
6027
}
6022
6028
6023
- static TypeJoinExpr *create (ASTContext &ctx, Type joinType,
6024
- ArrayRef<Expr *> exprs) {
6025
- return createImpl (ctx, joinType.getPointer (), exprs);
6029
+ static TypeJoinExpr *
6030
+ create (ASTContext &ctx, Type joinType, ArrayRef<Expr *> exprs,
6031
+ AllocationArena arena = AllocationArena::Permanent) {
6032
+ return createImpl (ctx, joinType.getPointer (), exprs, arena);
6026
6033
}
6027
6034
6028
6035
SourceLoc getLoc () const { return SourceLoc (); }
0 commit comments