diff options
Diffstat (limited to 'source/slang/slang-check-impl.h')
| -rw-r--r-- | source/slang/slang-check-impl.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/slang/slang-check-impl.h b/source/slang/slang-check-impl.h index 1cdebb115..be6b1c2fc 100644 --- a/source/slang/slang-check-impl.h +++ b/source/slang/slang-check-impl.h @@ -1837,6 +1837,8 @@ public: /// The type for which conformances are being checked Type* conformingType; + Witness* conformingWitness; + /// The outer declaration for the conformances being checked (either a type or `extension` /// declaration) ContainerDecl* parentDecl; @@ -2027,6 +2029,13 @@ public: // Check and register a type if it is differentiable. void maybeRegisterDifferentiableType(ASTBuilder* builder, Type* type); + // Find the default implementation of an interface requirement, + // and insert it to the witness table, if it exists. + bool findDefaultInterfaceImpl( + ConformanceCheckingContext* context, + DeclRef<Decl> requiredMemberDeclRef, + RefPtr<WitnessTable> witnessTable); + // Find the appropriate member of a declared type to // satisfy a requirement of an interface the type // claims to conform to. @@ -2989,6 +2998,7 @@ public: Expr* visitThisExpr(ThisExpr* expr); Expr* visitThisTypeExpr(ThisTypeExpr* expr); + Expr* visitThisInterfaceExpr(ThisInterfaceExpr* expr); Expr* visitCastToSuperTypeExpr(CastToSuperTypeExpr* expr); Expr* visitReturnValExpr(ReturnValExpr* expr); Expr* visitAndTypeExpr(AndTypeExpr* expr); |
