Browse Source

Fixed local variable references in current module.

newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
f37888e7c8
  1. 5
      src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs
  2. 10
      src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/CecilLoader.cs

5
src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs

@ -65,6 +65,7 @@ namespace Debugger @@ -65,6 +65,7 @@ namespace Debugger
var moduleMetadataInfo = new ModuleMetadataInfo(module);
foreach (var typeDef in asm.GetAllTypeDefinitions()) {
var cecilTypeDef = loader.GetCecilObject(typeDef);
loader.SetCurrentModule(cecilTypeDef.Module);
moduleMetadataInfo.MetadataTokens[typeDef] = cecilTypeDef.MetadataToken.ToUInt32();
foreach (var member in typeDef.Fields) {
var cecilMember = loader.GetCecilObject(member);
@ -129,7 +130,7 @@ namespace Debugger @@ -129,7 +130,7 @@ namespace Debugger
{
var info = GetInfo(method.ParentAssembly);
var variableTypes = info.LocalVariableTypes[method.UnresolvedMember];
return variableTypes[index].Resolve(method.Compilation);
return variableTypes[index].Resolve(new SimpleTypeResolveContext(method));
}
#endregion
@ -376,7 +377,7 @@ namespace Debugger @@ -376,7 +377,7 @@ namespace Debugger
public static IField GetBackingField(this IMethod method)
{
throw new NotImplementedException();
return null;
}
public static ICorDebugType[] GetTypeArguments(this IMethod method)

10
src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/CecilLoader.cs

@ -161,6 +161,16 @@ namespace ICSharpCode.NRefactory.TypeSystem @@ -161,6 +161,16 @@ namespace ICSharpCode.NRefactory.TypeSystem
return result;
}
/// <summary>
/// Sets the current module.
/// This causes ReadTypeReference() to use <see cref="DefaultAssemblyReference.CurrentAssembly"/> for references
/// in that module.
/// </summary>
public void SetCurrentModule(ModuleDefinition module)
{
this.currentModule = module;
}
/// <summary>
/// Loads a type from Cecil.
/// </summary>

Loading…
Cancel
Save