| 823 | } |
| 824 | |
| 825 | void BfModule::AddFieldDependency(BfTypeInstance* typeInstance, BfFieldInstance* fieldInstance, BfType* fieldType) |
| 826 | { |
| 827 | auto depFlag = fieldType->IsValueType() ? BfDependencyMap::DependencyFlag_ValueTypeMemberData : BfDependencyMap::DependencyFlag_PtrMemberData; |
| 828 | if (fieldInstance->IsAppendedObject()) |
| 829 | depFlag = BfDependencyMap::DependencyFlag_ValueTypeMemberData; |
| 830 | |
| 831 | AddDependency(fieldType, typeInstance, depFlag); |
| 832 | |
| 833 | if ((fieldType->IsStruct()) && (fieldType->IsGenericTypeInstance())) |
| 834 | { |
| 835 | // When we're a generic struct, our data layout can depend on our generic parameters as well |
| 836 | auto genericTypeInstance = (BfTypeInstance*)fieldType; |
| 837 | for (auto typeGenericArg : genericTypeInstance->mGenericTypeInfo->mTypeGenericArguments) |
| 838 | AddFieldDependency(typeInstance, fieldInstance, typeGenericArg); |
| 839 | } |
| 840 | } |
| 841 | |
| 842 | BfFieldInstance* BfModule::GetFieldByName(BfTypeInstance* typeInstance, const StringImpl& fieldName, bool isRequired, BfAstNode* refNode) |
| 843 | { |
nothing calls this directly
no test coverage detected