ソースを参照

Fixed ref autoprop

Brian Fiete 4 年 前
コミット
18208cb958
1 ファイル変更2 行追加1 行削除
  1. 2 1
      IDEHelper/Compiler/BfModule.cpp

+ 2 - 1
IDEHelper/Compiler/BfModule.cpp

@@ -19491,7 +19491,8 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup)
 							lookupValue = BfTypedValue(mBfIRBuilder->CreateInBoundsGEP(GetThis().mValue, 0, fieldInstance->mDataIdx), fieldInstance->mResolvedType, true);
 							lookupValue = BfTypedValue(mBfIRBuilder->CreateInBoundsGEP(GetThis().mValue, 0, fieldInstance->mDataIdx), fieldInstance->mResolvedType, true);
 						else
 						else
 							lookupValue = ExtractValue(GetThis(), fieldInstance, fieldInstance->mDataIdx);
 							lookupValue = ExtractValue(GetThis(), fieldInstance, fieldInstance->mDataIdx);
-						lookupValue = LoadOrAggregateValue(lookupValue);
+						if (!methodInstance->mReturnType->IsRef())
+							lookupValue = LoadOrAggregateValue(lookupValue);
 						CreateReturn(lookupValue.mValue);
 						CreateReturn(lookupValue.mValue);
 						EmitLifetimeEnds(&mCurMethodState->mHeadScope);
 						EmitLifetimeEnds(&mCurMethodState->mHeadScope);
 					}
 					}