edit: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Actions/CallSite.cs;C1915519
File: CallSite.cs
===================================================================
--- $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Actions/CallSite.cs;C1915519  (server)    7/22/2010 9:17 AM
+++ Shelved Change: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Actions/CallSite.cs;UnusedVariables
@@ -337,7 +337,6 @@
         [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
         private T CreateCustomNoMatchDelegate(MethodInfo invoke) {
             var @params = invoke.GetParametersCached().Map(p => Expression.Parameter(p.ParameterType, p.Name));
-            var site = @params[0];
             return Expression.Lambda<T>(
                 Expression.Block(
                     Expression.Call(
===================================================================
edit: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Actions/CallSiteBinder.cs;C1915519
File: CallSiteBinder.cs
===================================================================
--- $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Actions/CallSiteBinder.cs;C1915519  (server)    7/22/2010 9:18 AM
+++ Shelved Change: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Actions/CallSiteBinder.cs;UnusedVariables
@@ -166,7 +166,6 @@
         }
 
         private static Expression<T> Stitch<T>(Expression binding, LambdaSignature<T> signature) where T : class {
-            Type targetType = typeof(T);
             Type siteType = typeof(CallSite<T>);
 
             var body = new ReadOnlyCollectionBuilder<Expression>(3);
===================================================================
edit: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Ast/DebugViewWriter.cs;C1910056
File: DebugViewWriter.cs
===================================================================
--- $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Ast/DebugViewWriter.cs;C1910056  (server)    7/22/2010 9:20 AM
+++ Shelved Change: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Ast/DebugViewWriter.cs;UnusedVariables
@@ -229,12 +229,7 @@
             GetMemberBinder getMember;
             SetMemberBinder setMember;
             DeleteMemberBinder deleteMember;
-            GetIndexBinder getIndex;
-            SetIndexBinder setIndex;
-            DeleteIndexBinder deleteIndex;
             InvokeMemberBinder call;
-            InvokeBinder invoke;
-            CreateInstanceBinder create;
             UnaryOperationBinder unary;
             BinaryOperationBinder binary;
 
@@ -246,17 +241,17 @@
                 return "SetMember " + setMember.Name;
             } else if ((deleteMember = binder as DeleteMemberBinder) != null) {
                 return "DeleteMember " + deleteMember.Name;
-            } else if ((getIndex = binder as GetIndexBinder) != null) {
+            } else if (binder is GetIndexBinder) {
                 return "GetIndex";
-            } else if ((setIndex = binder as SetIndexBinder) != null) {
+            } else if (binder is SetIndexBinder) {
                 return "SetIndex";
-            } else if ((deleteIndex = binder as DeleteIndexBinder) != null) {
+            } else if (binder is DeleteIndexBinder) {
                 return "DeleteIndex";
             } else if ((call = binder as InvokeMemberBinder) != null) {
                 return "Call " + call.Name;
-            } else if ((invoke = binder as InvokeBinder) != null) {
+            } else if (binder is InvokeBinder) {
                 return "Invoke";
-            } else if ((create = binder as CreateInstanceBinder) != null) {
+            } else if (binder is CreateInstanceBinder) {
                 return "Create";
             } else if ((unary = binder as UnaryOperationBinder) != null) {
                 return "UnaryOperation " + unary.Operation;
@@ -866,8 +861,6 @@
 
         [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
         protected internal override Expression VisitUnary(UnaryExpression node) {
-            bool parenthesize = NeedsParentheses(node, node.Operand);
-
             switch (node.NodeType) {
                 case ExpressionType.Convert:
                     Out("(" + node.Type.ToString() + ")");
===================================================================
edit: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Ast/ExpressionStringBuilder.cs;C1910056
File: ExpressionStringBuilder.cs
===================================================================
--- $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Ast/ExpressionStringBuilder.cs;C1910056  (server)    7/22/2010 9:22 AM
+++ Shelved Change: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Ast/ExpressionStringBuilder.cs;UnusedVariables
@@ -162,12 +162,7 @@
             GetMemberBinder getMember;
             SetMemberBinder setMember;
             DeleteMemberBinder deleteMember;
-            GetIndexBinder getIndex;
-            SetIndexBinder setIndex;
-            DeleteIndexBinder deleteIndex;
             InvokeMemberBinder call;
-            InvokeBinder invoke;
-            CreateInstanceBinder create;
             UnaryOperationBinder unary;
             BinaryOperationBinder binary;
 
@@ -179,17 +174,17 @@
                 return "SetMember " + setMember.Name;
             } else if ((deleteMember = binder as DeleteMemberBinder) != null) {
                 return "DeleteMember " + deleteMember.Name;
-            } else if ((getIndex = binder as GetIndexBinder) != null) {
+            } else if (binder is GetIndexBinder) {
                 return "GetIndex";
-            } else if ((setIndex = binder as SetIndexBinder) != null) {
+            } else if (binder is SetIndexBinder) {
                 return "SetIndex";
-            } else if ((deleteIndex = binder as DeleteIndexBinder) != null) {
+            } else if (binder is DeleteIndexBinder) {
                 return "DeleteIndex";
             } else if ((call = binder as InvokeMemberBinder) != null) {
                 return "Call " + call.Name;
-            } else if ((invoke = binder as InvokeBinder) != null) {
+            } else if (binder is InvokeBinder) {
                 return "Invoke";
-            } else if ((create = binder as CreateInstanceBinder) != null) {
+            } else if (binder is CreateInstanceBinder) {
                 return "Create";
             } else if ((unary = binder as UnaryOperationBinder) != null) {
                 return unary.Operation.ToString();
===================================================================
edit: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Logical.cs;C1910056
File: LambdaCompiler.Logical.cs
===================================================================
--- $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Logical.cs;C1910056  (server)    7/22/2010 9:23 AM
+++ Shelved Change: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Logical.cs;UnusedVariables
@@ -175,7 +175,6 @@
             // if not null, call conversion
             _ilg.MarkLabel(labNotNull);
             Debug.Assert(b.Conversion.Parameters.Count == 1);
-            ParameterExpression p = b.Conversion.Parameters[0];
 
             // emit the delegate instance
             EmitLambdaExpression(b.Conversion);
===================================================================
edit: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Statements.cs;C1910056
File: LambdaCompiler.Statements.cs
===================================================================
--- $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Statements.cs;C1910056  (server)    7/19/2010 5:04 PM
+++ Shelved Change: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Statements.cs;UnusedVariables
@@ -43,8 +43,6 @@
 
             int count = node.ExpressionCount;
             CompilationFlags tailCall = flags & CompilationFlags.EmitAsTailCallMask;
-            CompilationFlags middleTailCall = tailCall == CompilationFlags.EmitAsNoTail ? CompilationFlags.EmitAsNoTail : CompilationFlags.EmitAsMiddle;
-
             for (int index = 0; index < count - 1; index++) {
                 var e = node.GetExpression(index);
                 var next = node.GetExpression(index + 1);
@@ -57,19 +55,23 @@
                         continue;
                     }
                 }
-                // In the middle of the block.
-                // We may do better here by marking it as Tail if the following expressions are not going to emit any IL.
-                var tailCallFlag = middleTailCall;
 
-                var g = next as GotoExpression;
-                if (g != null && (g.Value == null || !Significant(g.Value))) {
-                    var labelInfo = ReferenceLabel(g.Target);
-                    if (labelInfo.CanReturn) {
+                CompilationFlags tailCallFlag;
+                if (tailCall != CompilationFlags.EmitAsNoTail) {
+                    var g = next as GotoExpression;
+                    if (g != null && (g.Value == null || !Significant(g.Value)) && ReferenceLabel(g.Target).CanReturn) {
                         // Since tail call flags are not passed into EmitTryExpression, CanReturn means the goto will be emitted
                         // as Ret. Therefore we can emit the current expression with tail call.
                         tailCallFlag = CompilationFlags.EmitAsTail;
+                    } else {
+                        // In the middle of the block.
+                        // We may do better here by marking it as Tail if the following expressions are not going to emit any IL.
+                        tailCallFlag = CompilationFlags.EmitAsMiddle;
                     }
+                } else {
+                    tailCallFlag = CompilationFlags.EmitAsNoTail;
                 }
+
                 flags = UpdateEmitAsTailCallFlag(flags, tailCallFlag);
                 EmitExpressionAsVoid(e, flags);
             }
===================================================================
edit: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Unary.cs;C1910056
File: LambdaCompiler.Unary.cs
===================================================================
--- $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Unary.cs;C1910056  (server)    7/22/2010 9:23 AM
+++ Shelved Change: $/DevDiv/Dev11/PU/MQPro/ndp/fx/src/Core/Microsoft/Scripting/Compiler/LambdaCompiler.Unary.cs;UnusedVariables
@@ -105,10 +105,9 @@
             if (operandIsNullable) {
                 switch (op) {
                     case ExpressionType.Not: {
-                            if (operandType != typeof(bool?))
+                            if (operandType != typeof(bool?)) {
                                 goto case ExpressionType.Negate;
-
-                            Label labIfNull = _ilg.DefineLabel();
+                            }
                             Label labEnd = _ilg.DefineLabel();
                             LocalBuilder loc = GetLocal(operandType);
 
===================================================================
