|
|
|
|
@ -657,8 +657,11 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -657,8 +657,11 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
public override ResolveResult VisitIdentifierExpression(IdentifierExpression identifierExpression, object data) |
|
|
|
|
{ |
|
|
|
|
if (resolverEnabled) { |
|
|
|
|
// TODO: type arguments?
|
|
|
|
|
return resolver.ResolveSimpleName(identifierExpression.Identifier, EmptyList<IType>.Instance, |
|
|
|
|
List<IType> typeArguments = new List<IType>(); |
|
|
|
|
foreach (AstType typeArgument in identifierExpression.TypeArguments) { |
|
|
|
|
typeArguments.Add(ResolveType(typeArgument)); |
|
|
|
|
} |
|
|
|
|
return resolver.ResolveSimpleName(identifierExpression.Identifier, typeArguments, |
|
|
|
|
IsTargetOfInvocation(identifierExpression)); |
|
|
|
|
} else { |
|
|
|
|
ScanChildren(identifierExpression); |
|
|
|
|
@ -706,7 +709,10 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -706,7 +709,10 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
public override ResolveResult VisitIsExpression(IsExpression isExpression, object data) |
|
|
|
|
{ |
|
|
|
|
ScanChildren(isExpression); |
|
|
|
|
return new ResolveResult(KnownTypeReference.Boolean.Resolve(resolver.Context)); |
|
|
|
|
if (resolverEnabled) |
|
|
|
|
return new ResolveResult(KnownTypeReference.Boolean.Resolve(resolver.Context)); |
|
|
|
|
else |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override ResolveResult VisitLambdaExpression(LambdaExpression lambdaExpression, object data) |
|
|
|
|
@ -718,10 +724,12 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -718,10 +724,12 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
{ |
|
|
|
|
if (resolverEnabled) { |
|
|
|
|
ResolveResult target = Resolve(memberReferenceExpression.Target); |
|
|
|
|
List<AstType> typeArgumentNodes = memberReferenceExpression.TypeArguments.ToList(); |
|
|
|
|
// TODO: type arguments?
|
|
|
|
|
List<IType> typeArguments = new List<IType>(); |
|
|
|
|
foreach (AstType typeArgument in memberReferenceExpression.TypeArguments) { |
|
|
|
|
typeArguments.Add(ResolveType(typeArgument)); |
|
|
|
|
} |
|
|
|
|
return resolver.ResolveMemberAccess(target, memberReferenceExpression.MemberName, |
|
|
|
|
EmptyList<IType>.Instance, |
|
|
|
|
typeArguments, |
|
|
|
|
IsTargetOfInvocation(memberReferenceExpression)); |
|
|
|
|
} else { |
|
|
|
|
ScanChildren(memberReferenceExpression); |
|
|
|
|
@ -763,7 +771,20 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -763,7 +771,20 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
|
|
|
|
|
public override ResolveResult VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression, object data) |
|
|
|
|
{ |
|
|
|
|
throw new NotImplementedException(); |
|
|
|
|
if (resolverEnabled) { |
|
|
|
|
ResolveResult target = Resolve(pointerReferenceExpression.Target); |
|
|
|
|
ResolveResult deferencedTarget = resolver.ResolveUnaryOperator(UnaryOperatorType.Dereference, target); |
|
|
|
|
List<IType> typeArguments = new List<IType>(); |
|
|
|
|
foreach (AstType typeArgument in pointerReferenceExpression.TypeArguments) { |
|
|
|
|
typeArguments.Add(ResolveType(typeArgument)); |
|
|
|
|
} |
|
|
|
|
return resolver.ResolveMemberAccess(deferencedTarget, pointerReferenceExpression.MemberName, |
|
|
|
|
typeArguments, |
|
|
|
|
IsTargetOfInvocation(pointerReferenceExpression)); |
|
|
|
|
} else { |
|
|
|
|
ScanChildren(pointerReferenceExpression); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override ResolveResult VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, object data) |
|
|
|
|
@ -846,7 +867,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
@@ -846,7 +867,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
|
|
|
|
|
case UndocumentedExpressionType.RefValue: |
|
|
|
|
var tre = undocumentedExpression.Arguments.ElementAtOrDefault(1) as TypeReferenceExpression; |
|
|
|
|
if (tre != null) |
|
|
|
|
resultType = MakeTypeReference(tre.Type); |
|
|
|
|
resultType = ResolveType(tre.Type); |
|
|
|
|
else |
|
|
|
|
resultType = SharedTypes.UnknownType; |
|
|
|
|
break; |
|
|
|
|
|