private static BlockSyntax AddNotNullStatement(this BlockSyntax blockSyntax, string fieldName, ExpressionSyntax fieldIdentifierName) { var fieldNotNullStatement = RoslynUtils.CheckNullStatement( fieldName, SyntaxFactory.ReturnStatement(fieldIdentifierName), invert: true ); return(blockSyntax.AddStatements(fieldNotNullStatement)); }
private static BlockSyntax AddLockStatement( this BlockSyntax blockSyntax, string lockObjectName, string fieldName, ExpressionSyntax fieldIdentifierName, ExpressionSyntax fieldAssignmentExpression) { var assignmentStatement = RoslynUtils.AssignmentExpression(fieldName, fieldAssignmentExpression); var fieldNullStatement = RoslynUtils.CheckNullStatement(fieldName, assignmentStatement.ToStatement()); var lockStat = RoslynUtils.LockStatement( SyntaxFactory.IdentifierName(lockObjectName), SyntaxFactory.Block(fieldNullStatement, SyntaxFactory.ReturnStatement(fieldIdentifierName)) ); return(blockSyntax.AddStatements(lockStat)); }