mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 04:22:20 +02:00
Fixed comptime with local mixin with composite param access
This commit is contained in:
parent
4575c64133
commit
dd3485af0c
2 changed files with 14 additions and 1 deletions
|
@ -3668,8 +3668,10 @@ BfTypedValue BfExprEvaluator::LoadLocal(BfLocalVariable* varDecl, bool allowRef)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BfTypedValueKind kind;
|
BfTypedValueKind kind;
|
||||||
if ((varDecl->mResolvedType->IsComposite()) && (varDecl->IsParam()) && (mModule->mCurMethodState->mMixinState == NULL))
|
if ((varDecl->mResolvedType->IsComposite()) && (varDecl->mValue.IsArg()))
|
||||||
|
{
|
||||||
kind = varDecl->mIsReadOnly ? BfTypedValueKind_ReadOnlyAddr : BfTypedValueKind_Addr;
|
kind = varDecl->mIsReadOnly ? BfTypedValueKind_ReadOnlyAddr : BfTypedValueKind_Addr;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
kind = BfTypedValueKind_Value;
|
kind = BfTypedValueKind_Value;
|
||||||
localResult = BfTypedValue(varDecl->mValue, varDecl->mResolvedType, kind);
|
localResult = BfTypedValue(varDecl->mValue, varDecl->mResolvedType, kind);
|
||||||
|
|
|
@ -135,6 +135,16 @@ namespace Tests
|
||||||
public const let cVal1 = StrToValue("1.23");
|
public const let cVal1 = StrToValue("1.23");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Comptime]
|
||||||
|
static int StrLenMixin(StringView str)
|
||||||
|
{
|
||||||
|
mixin test()
|
||||||
|
{
|
||||||
|
str.Length
|
||||||
|
}
|
||||||
|
return test!();
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public static void TestBasics()
|
public static void TestBasics()
|
||||||
{
|
{
|
||||||
|
@ -172,6 +182,7 @@ namespace Tests
|
||||||
Test.Assert([ConstEval]MethodB() == 1);
|
Test.Assert([ConstEval]MethodB() == 1);
|
||||||
|
|
||||||
Test.Assert(MethodC() == 1753);
|
Test.Assert(MethodC() == 1753);
|
||||||
|
Test.Assert(StrLenMixin("ABCD") == 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue