diff --git a/src/Workspaces/CSharp/Portable/LanguageServices/CSharpTypeInferenceService.TypeInferrer.cs b/src/Workspaces/CSharp/Portable/LanguageServices/CSharpTypeInferenceService.TypeInferrer.cs index b1d2602a103fe2e9eec568d568c05ee63a800816..4fa7753e1c5854aa044dfa69ec19837f0a10c7b8 100644 --- a/src/Workspaces/CSharp/Portable/LanguageServices/CSharpTypeInferenceService.TypeInferrer.cs +++ b/src/Workspaces/CSharp/Portable/LanguageServices/CSharpTypeInferenceService.TypeInferrer.cs @@ -1771,7 +1771,7 @@ private IEnumerable InferTypeInYieldStatement(YieldStatementS return SpecializedCollections.EmptyEnumerable(); } - var declaration = yieldStatement.FirstAncestorOrSelf(e => e is LocalFunctionStatementSyntax || e is MemberDeclarationSyntax); + var declaration = yieldStatement.FirstAncestorOrSelf(n => n.IsReturnableConstruct()); var memberSymbol = GetDeclaredMemberSymbolFromOriginalSemanticModel(declaration); var memberType = GetMemberType(memberSymbol, out _); @@ -1825,10 +1825,7 @@ private ITypeSymbol UnwrapTaskLike(ITypeSymbol type, bool isAsync) return SpecializedCollections.EmptyEnumerable(); } - var ancestor = returnStatement.FirstAncestorOrSelf(e => - e is AnonymousFunctionExpressionSyntax || - e is LocalFunctionStatementSyntax || - e is MemberDeclarationSyntax); + var ancestor = returnStatement.FirstAncestorOrSelf(n => n.IsReturnableConstruct()); return ancestor is AnonymousFunctionExpressionSyntax anonymousFunction ? InferTypeInAnonymousFunctionExpression(anonymousFunction)