Browse Source

fix #652 - VB 'AddressOf' decompilation

pull/703/head
Siegfried Pammer 10 years ago
parent
commit
a38a8b13a7
  1. 12
      ILSpy/VB/ILSpyEnvironmentProvider.cs

12
ILSpy/VB/ILSpyEnvironmentProvider.cs

@ -38,7 +38,7 @@ namespace ICSharpCode.ILSpy.VB
//readonly CecilLoader loader = new CecilLoader(); //readonly CecilLoader loader = new CecilLoader();
public string GetTypeNameForAttribute(ICSharpCode.NRefactory.CSharp.Attribute attribute) public string GetTypeNameForAttribute(NRefactory.CSharp.Attribute attribute)
{ {
return attribute.Type.Annotations return attribute.Type.Annotations
.OfType<Mono.Cecil.MemberReference>() .OfType<Mono.Cecil.MemberReference>()
@ -63,7 +63,7 @@ namespace ICSharpCode.ILSpy.VB
return SpecialType.UnknownType; return SpecialType.UnknownType;
} }
public TypeKind GetTypeKindForAstType(ICSharpCode.NRefactory.CSharp.AstType type) public TypeKind GetTypeKindForAstType(NRefactory.CSharp.AstType type)
{ {
var annotation = type.Annotation<TypeReference>(); var annotation = type.Annotation<TypeReference>();
if (annotation == null) if (annotation == null)
@ -84,7 +84,7 @@ namespace ICSharpCode.ILSpy.VB
return TypeKind.Unknown; return TypeKind.Unknown;
} }
public TypeCode ResolveExpression(ICSharpCode.NRefactory.CSharp.Expression expression) public TypeCode ResolveExpression(NRefactory.CSharp.Expression expression)
{ {
var annotation = expression.Annotations.OfType<TypeInformation>().FirstOrDefault(); var annotation = expression.Annotations.OfType<TypeInformation>().FirstOrDefault();
@ -106,9 +106,9 @@ namespace ICSharpCode.ILSpy.VB
return TypeCode.Object; return TypeCode.Object;
} }
public Nullable<bool> IsReferenceType(ICSharpCode.NRefactory.CSharp.Expression expression) public Nullable<bool> IsReferenceType(NRefactory.CSharp.Expression expression)
{ {
if (expression is ICSharpCode.NRefactory.CSharp.NullReferenceExpression) if (expression is NRefactory.CSharp.NullReferenceExpression)
return true; return true;
var annotation = expression.Annotations.OfType<TypeInformation>().FirstOrDefault(); var annotation = expression.Annotations.OfType<TypeInformation>().FirstOrDefault();
@ -146,7 +146,7 @@ namespace ICSharpCode.ILSpy.VB
public bool IsMethodGroup(NRefactory.CSharp.Expression expression) public bool IsMethodGroup(NRefactory.CSharp.Expression expression)
{ {
var methodInfo = expression.Annotation<MethodDefinition>(); var methodInfo = expression.Annotation<MethodReference>()?.Resolve();
if (methodInfo != null) { if (methodInfo != null) {
return !methodInfo.IsGetter && !methodInfo.IsSetter; return !methodInfo.IsGetter && !methodInfo.IsSetter;
} }

Loading…
Cancel
Save