| 7735 | } |
| 7736 | |
| 7737 | BfArrayType* BfModule::CreateArrayType(BfType* resolvedType, int dimensions) |
| 7738 | { |
| 7739 | BF_ASSERT(!resolvedType->IsVar()); |
| 7740 | BF_ASSERT(!resolvedType->IsIntUnknown()); |
| 7741 | |
| 7742 | auto arrayTypeDef = mCompiler->GetArrayTypeDef(dimensions); |
| 7743 | if (arrayTypeDef == NULL) |
| 7744 | return NULL; |
| 7745 | auto arrayType = mContext->mArrayTypePool.Get(); |
| 7746 | delete arrayType->mGenericTypeInfo; |
| 7747 | arrayType->mGenericTypeInfo = new BfGenericTypeInfo(); |
| 7748 | arrayType->mContext = mContext; |
| 7749 | arrayType->mTypeDef = arrayTypeDef; |
| 7750 | arrayType->mDimensions = dimensions; |
| 7751 | arrayType->mGenericTypeInfo->mTypeGenericArguments.clear(); |
| 7752 | arrayType->mGenericTypeInfo->mTypeGenericArguments.push_back(resolvedType); |
| 7753 | auto resolvedArrayType = ResolveType(arrayType); |
| 7754 | if (resolvedArrayType != arrayType) |
| 7755 | { |
| 7756 | arrayType->Dispose(); |
| 7757 | mContext->mArrayTypePool.GiveBack(arrayType); |
| 7758 | } |
| 7759 | return (BfArrayType*)resolvedArrayType; |
| 7760 | } |
| 7761 | |
| 7762 | BfSizedArrayType* BfModule::CreateSizedArrayType(BfType * resolvedType, int size) |
| 7763 | { |
no test coverage detected