mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 04:22:20 +02:00
Fixed ToString issue with missing interface impl in type with extension
This commit is contained in:
parent
dcfcc03a55
commit
7787efda7e
3 changed files with 31 additions and 1 deletions
|
@ -65,5 +65,25 @@ namespace IDETest
|
|||
{
|
||||
Method5<E, F>(); //FAIL Generic argument 'A', declared to be 'E' for 'IDETest.Generics.Method5<E, F>()', must implement 'System.Collections.IEnumerable<F>'
|
||||
}
|
||||
|
||||
interface IFaceB<T>
|
||||
{
|
||||
void MethodA0();
|
||||
}
|
||||
|
||||
extension IFaceB<T>
|
||||
{
|
||||
void MethodA1();
|
||||
}
|
||||
|
||||
class ClassB<T> : IFaceB<T> //FAIL 'IDETest.Generics.ClassB<T>' does not implement interface member 'IDETest.Generics.IFaceB<T>.MethodA0()'
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
extension ClassB<T>
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -146,6 +146,7 @@ public:
|
|||
BfTypeReference* mCurAttributeTypeRef;
|
||||
BfFieldDef* mCurFieldDef;
|
||||
BfTypeDef* mCurTypeDef;
|
||||
BfTypeDef* mForceActiveTypeDef;
|
||||
ResolveKind mResolveKind;
|
||||
BfAstNode* mCurVarInitializer;
|
||||
int mArrayInitializerSize;
|
||||
|
@ -162,6 +163,7 @@ public:
|
|||
mCurFieldDef = NULL;
|
||||
mCurAttributeTypeRef = NULL;
|
||||
mCurTypeDef = NULL;
|
||||
mForceActiveTypeDef = NULL;
|
||||
mCurVarInitializer = NULL;
|
||||
mArrayInitializerSize = -1;
|
||||
mResolveKind = ResolveKind_None;
|
||||
|
@ -178,6 +180,7 @@ public:
|
|||
mCurFieldDef = NULL;
|
||||
mCurAttributeTypeRef = NULL;
|
||||
mCurTypeDef = NULL;
|
||||
mForceActiveTypeDef = NULL;
|
||||
mCurVarInitializer = NULL;
|
||||
mArrayInitializerSize = -1;
|
||||
mResolveKind = ResolveKind_None;
|
||||
|
|
|
@ -5543,6 +5543,11 @@ void BfModule::DoTypeInstanceMethodProcessing(BfTypeInstance* typeInstance)
|
|||
String methodString;
|
||||
///
|
||||
{
|
||||
BfTypeState typeState;
|
||||
typeState.mPrevState = mContext->mCurTypeState;
|
||||
typeState.mForceActiveTypeDef = declTypeDef;
|
||||
SetAndRestoreValue<BfTypeState*> prevTypeState(mContext->mCurTypeState, &typeState);
|
||||
|
||||
SetAndRestoreValue<BfMethodInstance*> prevMethodInstance(mCurMethodInstance, ifaceMethodInst);
|
||||
methodString = MethodToString(ifaceMethodInst);
|
||||
}
|
||||
|
@ -8113,6 +8118,8 @@ BfTypeDef* BfModule::GetActiveTypeDef(BfTypeInstance* typeInstanceOverride, bool
|
|||
{
|
||||
BfTypeDef* useTypeDef = NULL;
|
||||
BfTypeInstance* typeInstance = (typeInstanceOverride != NULL) ? typeInstanceOverride : mCurTypeInstance;
|
||||
if ((mContext->mCurTypeState != NULL) && (mContext->mCurTypeState->mForceActiveTypeDef != NULL))
|
||||
return mContext->mCurTypeState->mForceActiveTypeDef;
|
||||
if (typeInstance != NULL)
|
||||
useTypeDef = typeInstance->mTypeDef;
|
||||
if ((mCurMethodState != NULL) && (mCurMethodState->mMixinState != NULL) && (useMixinDecl))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue