Skip to content

Commit 8c15c91

Browse files
committed
Add reference to MemberRef of override directive
Fix yck1509#413
1 parent 9c4d52e commit 8c15c91

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

Confuser.Renamer/References/OverrideDirectiveReference.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,20 @@ public bool UpdateNameReference(ConfuserContext context, INameService service) {
3535
IMethod target;
3636
if (baseSlot.MethodDefDeclType is GenericInstSig) {
3737
var declType = (GenericInstSig)baseSlot.MethodDefDeclType;
38-
target = new MemberRefUser(method.Module, baseSlot.MethodDef.Name, baseSlot.MethodDef.MethodSig, declType.ToTypeDefOrRef());
39-
target = (IMethod)new Importer(method.Module, ImporterOptions.TryToUseTypeDefs).Import(target);
38+
39+
MemberRef targetRef = new MemberRefUser(method.Module, baseSlot.MethodDef.Name, baseSlot.MethodDef.MethodSig, declType.ToTypeDefOrRef());
40+
targetRef = new Importer(method.Module, ImporterOptions.TryToUseTypeDefs).Import(targetRef);
41+
service.AddReference(baseSlot.MethodDef, new MemberRefReference(targetRef, baseSlot.MethodDef));
42+
43+
target = targetRef;
4044
}
4145
else {
4246
target = baseSlot.MethodDef;
43-
if (target.Module != method.Module)
47+
if (target.Module != method.Module) {
4448
target = (IMethod)new Importer(method.Module, ImporterOptions.TryToUseTypeDefs).Import(baseSlot.MethodDef);
49+
if (target is MemberRef)
50+
service.AddReference(baseSlot.MethodDef, new MemberRefReference((MemberRef)target, baseSlot.MethodDef));
51+
}
4552
}
4653
if (target is MemberRef)
4754
AddImportReference(context, service, method.Module, baseSlot.MethodDef, (MemberRef)target);

0 commit comments

Comments
 (0)