diff --git a/src/Workspaces/CSharp/Portable/LanguageServices/CSharpTypeInferenceService.TypeInferrer.cs b/src/Workspaces/CSharp/Portable/LanguageServices/CSharpTypeInferenceService.TypeInferrer.cs index f28b17d12c66ca2abbe385b5a3fc26513ef99ca5..64a277532e743511fd9c2ee348659e789d558bcd 100644 --- a/src/Workspaces/CSharp/Portable/LanguageServices/CSharpTypeInferenceService.TypeInferrer.cs +++ b/src/Workspaces/CSharp/Portable/LanguageServices/CSharpTypeInferenceService.TypeInferrer.cs @@ -1447,7 +1447,7 @@ private IEnumerable InferTypeInParenthesizedLambdaExpression( return SpecializedCollections.EmptyEnumerable(); } - return InferTypeInLambdaExpression(lambdaExpression); + return InferTypeInAnonymousFunctionExpression(lambdaExpression); } private IEnumerable InferTypeInSimpleLambdaExpression(SimpleLambdaExpressionSyntax lambdaExpression, SyntaxToken? previousToken = null) @@ -1458,13 +1458,14 @@ private IEnumerable InferTypeInSimpleLambdaExpression(SimpleL return SpecializedCollections.EmptyEnumerable(); } - return InferTypeInLambdaExpression(lambdaExpression); + return InferTypeInAnonymousFunctionExpression(lambdaExpression); } - private IEnumerable InferTypeInLambdaExpression(ExpressionSyntax lambdaExpression) + private IEnumerable InferTypeInAnonymousFunctionExpression(AnonymousFunctionExpressionSyntax anonymousFunction) { // Func = i => Goo(); - var types = InferTypes(lambdaExpression); + // Func = delegate (int i) { return Goo(); }; + var types = InferTypes(anonymousFunction); var type = types.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); if (type != null) @@ -1862,7 +1863,7 @@ private IEnumerable InferTypeForReturnStatement(ReturnStateme { // If we're in a lambda, then use the return type of the lambda to figure out what to // infer. i.e. Func f = i => { return Goo(); } - types = InferTypeInLambdaExpression(lambdaExpression); + types = InferTypeInAnonymousFunctionExpression(lambdaExpression); isAsync = lambdaExpression.AsyncKeyword.Kind() != SyntaxKind.None; return; }