From 8e86121b6ce0f2995050ebe112306ded6bc87ca2 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 8 May 2024 20:52:36 -0700 Subject: Support `[__ref]` attribute to make `this` pass by reference. (#4139) Fixes #4110. --- source/slang/slang-lookup.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/slang/slang-lookup.cpp') diff --git a/source/slang/slang-lookup.cpp b/source/slang/slang-lookup.cpp index 9c8b2fa0b..5e30e3ce9 100644 --- a/source/slang/slang-lookup.cpp +++ b/source/slang/slang-lookup.cpp @@ -862,6 +862,13 @@ static void _lookUpInScopes( // thisParameterMode = LookupResultItem::Breadcrumb::ThisParameterMode::MutableValue; } + else if (funcDeclRef.getDecl()->hasModifier()) + { + // In a non-`static` method marked `[ref]` there is + // an implicit `this` parameter that is mutable. + // + thisParameterMode = LookupResultItem::Breadcrumb::ThisParameterMode::MutableValue; + } else { // In all other cases, there is an implicit `this` parameter -- cgit v1.2.3