2010-04-06 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Tue, 6 Apr 2010 16:23:25 +0000 (16:23 -0000)
committerMarek Safar <marek.safar@gmail.com>
Tue, 6 Apr 2010 16:23:25 +0000 (16:23 -0000)
* Updated to r46640.

svn path=/trunk/mcs/; revision=154868

14 files changed:
mcs/class/dlr/ChangeLog
mcs/class/dlr/Runtime/Microsoft.Dynamic/Microsoft.Dynamic.Build.csproj
mcs/class/dlr/Runtime/Microsoft.Dynamic/Microsoft.Dynamic.csproj
mcs/class/dlr/Runtime/Microsoft.Dynamic/Properties/AssemblyInfo.cs
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Actions/DynamicObject.cs
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Actions/IInvokeOnGetBinder.cs [new file with mode: 0644]
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Ast/TypeUtils.cs
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Compiler/ConstantCheck.cs
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Compiler/ILGen.cs
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Microsoft.Scripting.Core.csproj
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Microsoft.Scripting.ExtensionAttribute.csproj
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Properties/AssemblyInfo.cs
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Properties/ExtensionAssemblyInfo.cs
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/System.Core.csproj

index 33c0efe666172e9fc8e32ffe55b3929ef196cadc..0e278310a7caf225108009b88606340b85cd2969 100644 (file)
@@ -1,3 +1,7 @@
+2010-04-06  Marek Safar  <marek.safar@gmail.com>
+
+       * Updated to r46640.
+
 2009-11-26  Marek Safar  <marek.safar@gmail.com>
 
        * Updated to r35702.
index 687efe40f09bad019f9874c222cc886e9863cf65..a4ff6c466571f5276d06f32f294aadcbd676470d 100644 (file)
     <DebugType>pdbonly</DebugType>\r
     <BinPlaceSymbols>false</BinPlaceSymbols> \r
     <WarningLevel>4</WarningLevel>\r
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>\r
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>\r
     <RunCodeAnalysis>false</RunCodeAnalysis>\r
     <GenerateAssemblyAttribute>false</GenerateAssemblyAttribute>\r
-<OutputPath>$(SolutionDir)\..\Bin\40\</OutputPath>\r
-<AssemblyOriginatorKeyFile>$(SolutionDir)\Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>\r
+<OutputPath>$(SolutionDir)..\Bin\40\</OutputPath>\r
+<AssemblyOriginatorKeyFile>$(SolutionDir)Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>\r
     <SignAssembly Condition="'$(SignAssembly)' == '' And Exists('$(AssemblyOriginatorKeyFile)')">true</SignAssembly>\r
     <SignedSym Condition="'$(SignAssembly)' == 'true'">SIGNED</SignedSym>\r
     <DelaySign>true</DelaySign>\r
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>$(SolutionDir)\..\Bin\40\</OutputPath>
-    <DefineConstants>DEBUG;TRACE;CODEPLEX_40;SYSTEM_CORE</DefineConstants>
+    <OutputPath>$(SolutionDir)..\Bin\40\</OutputPath>
+    <DefineConstants>DEBUG;TRACE;CODEPLEX_40;CLR4;SYSTEM_CORE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>$(SolutionDir)\..\Bin\40\</OutputPath>
-    <DefineConstants>TRACE;CODEPLEX_40;SYSTEM_CORE</DefineConstants>
+    <OutputPath>$(SolutionDir)..\Bin\40\</OutputPath>
+    <DefineConstants>TRACE;CODEPLEX_40;CLR4;SYSTEM_CORE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>\r
@@ -60,6 +60,7 @@
     <Reference Include="System.Runtime.Remoting" Condition=" $(SilverlightBuild) != 'true' " />\r
     <Reference Include="System.Xml" Condition=" $(SilverlightBuild) != 'true' " />\r
     <ProjectReference Include="..\Microsoft.Scripting\Microsoft.Scripting.Build.csproj">\r
+      <Project>{EB66B766-6354-4208-A3D4-AACBDCB5C3B3}</Project>\r
       <Name>Microsoft.Scripting</Name>\r
     </ProjectReference>\r
   </ItemGroup>\r
@@ -85,7 +86,6 @@
       <Compile Include="Actions\ActionBinder.cs" />\r
       <Compile Include="Actions\Argument.cs" />\r
       <Compile Include="Actions\ArgumentType.cs" />\r
-      <Compile Include="Actions\BinderHelpers.cs" />\r
       <Compile Include="Actions\BoundMemberTracker.cs" />\r
       <Compile Include="Actions\CallSignature.cs" />\r
       <Compile Include="Actions\ComboActionRewriter.cs" />\r
       <Compile Include="Actions\Calls\MethodCandidate.cs" />\r
       <Compile Include="Actions\Calls\NarrowingLevel.cs" />\r
       <Compile Include="Actions\Calls\OutArgBuilder.cs" />\r
+      <Compile Include="Actions\Calls\OverloadInfo.cs" />\r
       <Compile Include="Actions\Calls\OverloadResolver.cs" />\r
       <Compile Include="Actions\Calls\OverloadResolverFactory.cs" />\r
       <Compile Include="Actions\Calls\ParameterMapping.cs" />\r
       <!--                       -->\r
       <Compile Include="Ast\BinaryExpression.cs" />\r
       <Compile Include="Ast\Block.cs" />\r
+      <Compile Include="Ast\BlockBuilder.cs" />\r
       <Compile Include="Ast\ConstantExpression.cs" />\r
       <Compile Include="Ast\DebugStatement.cs" />\r
       <Compile Include="Ast\EmptyStatements.cs" />\r
+      <Compile Include="Ast\ExpressionCollectionBuilder.cs" />\r
       <Compile Include="Ast\FinallyFlowControlExpression.cs" />\r
       <Compile Include="Ast\FlowControlRewriter.cs" />\r
       <Compile Include="Ast\GeneratorExpression.cs" />\r
       <Compile Include="Ast\IfStatementTest.cs" />\r
       <Compile Include="Ast\LambdaBuilder.cs" />\r
       <Compile Include="Ast\LambdaParameterRewriter.cs" />\r
+      <Compile Include="Ast\LightDynamicExpression.cs" />\r
       <Compile Include="Ast\LoopStatement.cs" />\r
       <Compile Include="Ast\MethodCallExpression.cs" />\r
       <Compile Include="Ast\NewArrayExpression.cs" />\r
       <Compile Include="Ast\SymbolConstantExpression.cs" />\r
       <Compile Include="Ast\TryStatementBuilder.cs" />\r
       <Compile Include="Ast\UnaryExpression.cs" />\r
+      <Compile Include="Ast\Utils.cs" />\r
       <Compile Include="Ast\VariableDictionaryExpression.cs" />\r
       <Compile Include="Ast\YieldExpression.cs" />\r
     </ItemGroup>\r
       <Compile Include="Generation\ILGen.cs" />\r
       <Compile Include="Generation\KeyedQueue.cs" />\r
       <Compile Include="Generation\MethodSignatureInfo.cs" />\r
-      <Compile Include="Generation\ParameterInfoWrapper.cs" />\r
       <Compile Include="Generation\Snippets.cs" />\r
       <Compile Include="Generation\ToDiskRewriter.cs" />\r
       <Compile Include="Generation\TypeGen.cs" />\r
       <!--          Interpreter          -->\r
       <!--                               -->\r
       <Compile Include="Interpreter\BranchLabel.cs" />\r
+      <Compile Include="Interpreter\ILightCallSiteBinder.cs" />\r
       <Compile Include="Interpreter\InterpretedFrame.cs" />\r
       <Compile Include="Interpreter\Interpreter.cs" />\r
       <Compile Include="Interpreter\LastFaultingLineExpression.cs" />\r
       <Compile Include="Interpreter\LightLambda.cs" />\r
       <Compile Include="Interpreter\LightLambda.Generated.cs" />\r
       <Compile Include="Interpreter\LightLambdaClosureVisitor.cs" />\r
+      <Compile Include="Interpreter\LocalVariables.cs" />\r
+      <Compile Include="Interpreter\LoopCompiler.cs" />\r
       <Compile Include="Interpreter\RuntimeVariables.cs" />\r
     </ItemGroup>\r
     <ItemGroup>\r
       <Compile Include="Interpreter\Instructions\CallInstruction.cs" />\r
       <Compile Include="Interpreter\Instructions\CallInstruction.Generated.cs" />\r
       <Compile Include="Interpreter\Instructions\ControlFlowInstructions.cs" />\r
+      <Compile Include="Interpreter\Instructions\DivInstruction.cs" />\r
       <Compile Include="Interpreter\Instructions\DynamicInstructionN.cs" />\r
       <Compile Include="Interpreter\Instructions\DynamicInstructions.Generated.cs" />\r
+      <Compile Include="Interpreter\Instructions\DynamicSplatInstruction.cs" />\r
       <Compile Include="Interpreter\Instructions\EqualInstruction.cs" />\r
       <Compile Include="Interpreter\Instructions\FieldOperations.cs" />\r
       <Compile Include="Interpreter\Instructions\GreaterThanInstruction.cs" />\r
       <!--          Runtime          -->\r
       <!--                           -->\r
       <Compile Include="Runtime\AmbiguousFileNameException.cs" />\r
+      <Compile Include="Runtime\ArgumentArray.cs" />\r
       <Compile Include="Runtime\AssemblyTypeNames.cs" />\r
       <Compile Include="Runtime\BaseSymbolDictionary.cs" />\r
       <Compile Include="Runtime\BinderOps.cs" />\r
       <Compile Include="Runtime\CodeDomCodeGen.cs" />\r
       <Compile Include="Runtime\CompilerContext.cs" />\r
       <Compile Include="Runtime\CustomSymbolDictionary.cs" />\r
-      <Compile Include="Runtime\DefaultLanguageContext.cs" />\r
       <Compile Include="Runtime\DelegateInfo.cs" />\r
       <Compile Include="Runtime\DelegateSignatureInfo.cs" />\r
       <Compile Include="Runtime\DlrCachedCodeAttribute.cs" />\r
       <Compile Include="Runtime\DynamicDelegateCreator.cs" />\r
       <Compile Include="Runtime\DynamicLanguageProviderAttribute.cs" />\r
       <Compile Include="Runtime\DynamicNull.cs" />\r
-      <Compile Include="Runtime\DynamicRuntimeHostingProvider.cs" />\r
       <Compile Include="Runtime\DynamicStackFrame.cs" />\r
       <Compile Include="Runtime\ExceptionHelpers.cs" />\r
       <Compile Include="Runtime\ExplicitConversionMethodAttribute.cs" />\r
       <Compile Include="Utils\SynchronizedDictionary.cs" />\r
       <Compile Include="Utils\TextStream.cs" />\r
       <Compile Include="Utils\ThreadLocal.cs" />\r
-      <Compile Include="Utils\TypeExtensions.cs" />\r
       <Compile Include="Utils\TypeUtils.cs" />\r
       <Compile Include="Utils\ValueArray.cs" />\r
       <Compile Include="Utils\WeakCollection.cs" />\r
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>$(SolutionDir)\..\Bin\40\</OutputPath>
-    <DefineConstants>DEBUG;TRACE;CODEPLEX_40;SYSTEM_CORE</DefineConstants>
+    <OutputPath>$(SolutionDir)..\Bin\40\</OutputPath>
+    <DefineConstants>DEBUG;TRACE;CODEPLEX_40;CLR4;SYSTEM_CORE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>$(SolutionDir)\..\Bin\40\</OutputPath>
-    <DefineConstants>TRACE;CODEPLEX_40;SYSTEM_CORE</DefineConstants>
+    <OutputPath>$(SolutionDir)..\Bin\40\</OutputPath>
+    <DefineConstants>TRACE;CODEPLEX_40;CLR4;SYSTEM_CORE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>\r
index 27e163520eed0346ca926a420d0c03189605bf24..17b03f9b14fde942d998c39565c3219cd9ca11a5 100644 (file)
@@ -13,7 +13,7 @@
     <AssemblyName>Microsoft.Dynamic</AssemblyName>
     <WarningsNotAsErrors>1685,618,649</WarningsNotAsErrors>
     <NoWarn>1591</NoWarn>
-<AssemblyOriginatorKeyFile>$(SolutionDir)\Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
+<AssemblyOriginatorKeyFile>$(SolutionDir)Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
     <SignAssembly Condition="'$(SignAssembly)' == '' And Exists('$(AssemblyOriginatorKeyFile)')">true</SignAssembly>
     <SignedSym Condition="'$(SignAssembly)' == 'true'">SIGNED</SignedSym>
     <DelaySign>true</DelaySign>
@@ -28,7 +28,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'FxCop|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\fxcop\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\fxcop\</OutputPath>
     <DefineConstants>TRACE;CLR2;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -40,7 +40,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Debug\</OutputPath>
 <DocumentationFile>$(OutputPath)\Microsoft.Dynamic.xml</DocumentationFile>
     <DefineConstants>DEBUG;TRACE;CLR2;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -51,7 +51,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Release\</OutputPath>
 <DocumentationFile>$(OutputPath)\Microsoft.Dynamic.xml</DocumentationFile>
     <DefineConstants>TRACE;CLR2;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -61,7 +61,7 @@
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Silverlight Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
-<OutputPath>$(SolutionDir)\..\Bin\Silverlight Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Silverlight Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;SILVERLIGHT;CLR2;$(SignedSym)</DefineConstants>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
     <DebugType>full</DebugType>
@@ -76,7 +76,7 @@
     <SilverlightPath Condition="'$(SilverlightPath)' == ''">$(Silverlight3Path)</SilverlightPath>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Silverlight Release|AnyCPU' ">
-<OutputPath>$(SolutionDir)\..\Bin\Silverlight Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Silverlight Release\</OutputPath>
     <DefineConstants>TRACE;SILVERLIGHT;CLR2;$(SignedSym)</DefineConstants>
 <DocumentationFile>$(OutputPath)\Microsoft.Dynamic.xml</DocumentationFile>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
@@ -93,7 +93,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\V4 Debug\</OutputPath>
 <DocumentationFile>$(OutputPath)\Microsoft.Dynamic.xml</DocumentationFile>
     <DefineConstants>DEBUG;TRACE;CLR4;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'V4 Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\V4 Release\</OutputPath>
 <DocumentationFile>$(OutputPath)\Microsoft.Dynamic.xml</DocumentationFile>
     <DefineConstants>TRACE;CLR4;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;SILVERLIGHT;CLR4;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
     <PlatformTarget>AnyCPU</PlatformTarget>
-<OutputPath>$(SolutionDir)\..\Bin\Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Release\</OutputPath>
     <DefineConstants>TRACE;SILVERLIGHT;CLR4;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <Compile Include="Actions\Calls\MethodCandidate.cs" />
     <Compile Include="Actions\Calls\NarrowingLevel.cs" />
     <Compile Include="Actions\Calls\OutArgBuilder.cs" />
+    <Compile Include="Actions\Calls\OverloadInfo.cs" />
     <Compile Include="Actions\Calls\OverloadResolver.cs" />
     <Compile Include="Actions\Calls\OverloadResolverFactory.cs" />
     <Compile Include="Actions\Calls\ParameterMapping.cs" />
     <Compile Include="Actions\MemberRequestKind.cs" />
     <Compile Include="Actions\OperationBinder.cs" />
     <Compile Include="Actions\OperationMetaObject.cs" />
+    <Compile Include="Ast\BlockBuilder.cs" />
+    <Compile Include="Ast\ExpressionCollectionBuilder.cs" />
     <Compile Include="Ast\FinallyFlowControlExpression.cs" />
     <Compile Include="Ast\FlowControlRewriter.cs" />
     <Compile Include="Ast\SourceFileInformation.cs" />
     <Compile Include="Ast\SkipInterpretExpression.cs" />
+    <Compile Include="Ast\LightDynamicExpression.cs" />
+    <Compile Include="Ast\Utils.cs" />
     <Compile Include="Ast\VariableDictionaryExpression.cs" />
     <Compile Include="Ast\NewArrayExpression.cs" />
     <Compile Include="Ast\NewExpression.cs" />
     <Compile Include="Interpreter\Instructions\CallInstruction.cs" />
     <Compile Include="Interpreter\Instructions\CallInstruction.Generated.cs" />
     <Compile Include="Interpreter\Instructions\ControlFlowInstructions.cs" />
+    <Compile Include="Interpreter\Instructions\DivInstruction.cs" />
+    <Compile Include="Interpreter\Instructions\DynamicSplatInstruction.cs" />
     <Compile Include="Interpreter\Instructions\EqualInstruction.cs" />
     <Compile Include="Interpreter\Instructions\FieldOperations.cs" />
     <Compile Include="Interpreter\Instructions\GreaterThanInstruction.cs" />
     <Compile Include="Interpreter\Instructions\NumericConvertInstruction.cs" />
     <Compile Include="Interpreter\Instructions\StackOperations.cs" />
     <Compile Include="Interpreter\Instructions\TypeOperations.cs" />
+    <Compile Include="Interpreter\ILightCallSiteBinder.cs" />
     <Compile Include="Interpreter\LightDelegateCreator.cs" />
     <Compile Include="Interpreter\LightLambda.Generated.cs" />
     <Compile Include="Interpreter\Interpreter.cs" />
     <Compile Include="Interpreter\LightLambda.cs" />
     <Compile Include="Interpreter\Instructions\Instruction.cs" />
     <Compile Include="Interpreter\LightCompiler.cs" />
+    <Compile Include="Interpreter\LocalVariables.cs" />
+    <Compile Include="Interpreter\LoopCompiler.cs" />
     <Compile Include="Interpreter\RuntimeVariables.cs" />
     <Compile Include="Interpreter\InterpretedFrame.cs" />
     <Compile Include="Interpreter\LastFaultingLineExpression.cs" />
     <Compile Include="Math\BigIntegerV2.cs" />
     <Compile Include="Math\BigIntegerV4.cs" />
+    <Compile Include="Runtime\ArgumentArray.cs" />
     <Compile Include="Runtime\BindingRestrictionsHelpers.cs" />
     <Compile Include="Runtime\DynamicDelegateCreator.cs" />
     <Compile Include="Runtime\DynamicNull.cs" />
     <Compile Include="Generation\KeyedQueue.cs" />
     <Compile Include="Generation\Snippets.cs" />
     <Compile Include="Generation\TypeGen.cs" />
-    <Compile Include="Actions\BinderHelpers.cs" />
     <Compile Include="Actions\ComboActionRewriter.cs" />
     <Compile Include="Actions\ComboBinder.cs" />
     <Compile Include="Actions\ConditionalBuilder.cs" />
     <Compile Include="Runtime\Cast.Generated.cs" />
     <Compile Include="Runtime\Cast.cs" />
     <Compile Include="Runtime\CodeDomCodeGen.cs" />
-    <Compile Include="Runtime\DefaultLanguageContext.cs" />
     <Compile Include="Runtime\DelegateInfo.cs" />
     <Compile Include="Runtime\DelegateSignatureInfo.cs" />
     <Compile Include="Runtime\ISlice.cs" />
     <Compile Include="Utils\HashSet.cs" />
     <Compile Include="Utils\SynchronizedDictionary.cs" />
     <Compile Include="Utils\ThreadLocal.cs" />
-    <Compile Include="Utils\TypeExtensions.cs" />
     <Compile Include="Utils\TypeUtils.cs" />
     <Compile Include="Utils\ValueArray.cs" />
     <Compile Include="Utils\WeakCollection.cs" />
     <Compile Include="Ast\IfStatementTest.cs" />
     <Compile Include="Generation\CompilerHelpers.cs" />
     <Compile Include="Generation\IExpressionSerializable.cs" />
-    <Compile Include="Generation\ParameterInfoWrapper.cs" />
     <Compile Include="Generation\ToDiskRewriter.cs" />
     <Compile Include="Runtime\AssemblyTypeNames.cs" />
     <Compile Include="Runtime\BaseSymbolDictionary.cs" />
     <Compile Include="Runtime\CustomSymbolDictionary.cs" />
     <Compile Include="Runtime\DlrCachedCodeAttribute.cs" />
     <Compile Include="Runtime\DocumentationAttribute.cs" />
-    <Compile Include="Runtime\DynamicRuntimeHostingProvider.cs" />
-    <Compile Include="Runtime\DynamicStackFrame.cs" />
     <Compile Include="Runtime\ExceptionHelpers.cs" />
     <Compile Include="Runtime\ExplicitConversionMethodAttribute.cs" />
     <Compile Include="Runtime\Extensible.cs" />
   </ItemGroup>
   <ItemGroup Condition=" '$(SilverlightBuild)' != 'true' ">
     <Reference Include="System" />
+    <Reference Include="System.Xml" />
     <Reference Include="System.Configuration" />
     <Reference Include="System.Numerics" Condition=" '$(TargetFrameworkVersion)' == 'v4.0' " />
     <Reference Include="System.Core" Condition=" '$(TargetFrameworkVersion)' == 'v4.0' " />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Runtime.Remoting" />
   </ItemGroup>
   <ItemGroup Condition=" '$(SilverlightBuild)' == 'true' ">
     <Reference Include="mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>$(SilverlightPath)\System.Core.dll</HintPath>
     </Reference>
+    <Reference Include="System.Numerics, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Condition="'$(TargetFrameworkVersion)' == 'v4.0' ">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>$(SilverlightPath)\System.Numerics.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Microsoft.Scripting.Core\Microsoft.Scripting.Core.csproj" Condition="'$(TargetFrameworkVersion)' != 'v4.0'">
       <Project>{02FF0909-F5AD-48CF-A86A-345E721B7E40}</Project>
       <Name>Microsoft.Scripting</Name>
     </ProjectReference>
-    <Reference Include="System.Data" />
-    <Reference Include="System.Runtime.Remoting" Condition=" '$(SilverlightBuild)' != 'true' " />
-    <Reference Include="System.Xml" Condition=" '$(SilverlightBuild)' != 'true' " />
-    <Reference Include="System.Numerics" Condition="'$(TargetFrameworkVersion)' == 'v4.0'" />
   </ItemGroup>
   <ItemGroup>
     <Content Include="Microsoft.Scripting.txt" />
index c6d59800fde9afe243115f8697a1e1ca13394faa..a15dcb547c70b9da4786074941133e52869ad3ad 100644 (file)
@@ -63,11 +63,10 @@ using System.Security.Permissions;
 #endif
 
 #if !SILVERLIGHT
-[assembly: AssemblyVersion("0.9.6.20")]
-[assembly: AssemblyFileVersion("1.0.0.00")]
-[assembly: AssemblyInformationalVersion("1.0")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.1.00")]
+[assembly: AssemblyInformationalVersion("1.0.1")]
 [assembly: AllowPartiallyTrustedCallers]
-#if CODEPLEX_40
-[assembly: SecurityRules(SecurityRuleSet.Level1)]
-#endif
+[assembly: TypeForwardedTo(typeof(Microsoft.Scripting.Runtime.DynamicStackFrame))]
 #endif
+
index 497331e8523a22e1f534ea395ddf80e6a4e6dfc0..8c00a873151c4526f97c19a62eb58d18870039b1 100644 (file)
@@ -265,28 +265,38 @@ namespace System.Dynamic {
             }
 
             public override DynamicMetaObject BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args) {
-                if (IsOverridden("TryInvokeMember")) {
-                    return CallMethodWithResult("TryInvokeMember", binder, GetArgArray(args), (e) => binder.FallbackInvokeMember(this, args, e));
-                } else if (IsOverridden("TryGetMember")) {
-                    // Generate a tree like:
-                    //
-                    // {
-                    //   object result;
-                    //   TryGetMember(payload, out result) ? FallbackInvoke(result) : fallbackResult
-                    // }
-                    //
-                    // Then it calls FallbackInvokeMember with this tree as the
-                    // "error", giving the language the option of using this
-                    // tree or doing .NET binding.
-                    //
-                    return CallMethodWithResult(
-                        "TryGetMember", new GetBinderAdapter(binder), NoArgs,
-                        (e) => binder.FallbackInvokeMember(this, args, e),
+                // Generate a tree like:
+                //
+                // {
+                //   object result;
+                //   TryInvokeMember(payload, out result)
+                //      ? result
+                //      : TryGetMember(payload, out result)
+                //          ? FallbackInvoke(result)
+                //          : fallbackResult
+                // }
+                //
+                // Then it calls FallbackInvokeMember with this tree as the
+                // "error", giving the language the option of using this
+                // tree or doing .NET binding.
+                //
+                Fallback fallback = e => binder.FallbackInvokeMember(this, args, e);
+
+                var call = BuildCallMethodWithResult(
+                    "TryInvokeMember",
+                    binder,
+                    GetArgArray(args),
+                    BuildCallMethodWithResult(
+                        "TryGetMember",
+                        new GetBinderAdapter(binder),
+                        NoArgs,
+                        fallback(null), 
                         (e) => binder.FallbackInvoke(e, args, null)
-                    );
-                }
+                    ),
+                    null
+                );
 
-                return base.BindInvokeMember(binder, args);
+                return fallback(call);
             }
 
 
@@ -398,6 +408,24 @@ namespace System.Dynamic {
                 //
                 DynamicMetaObject fallbackResult = fallback(null);
 
+                var callDynamic = BuildCallMethodWithResult(methodName, binder, args, fallbackResult, fallbackInvoke);
+                
+                //
+                // Now, call fallback again using our new MO as the error
+                // When we do this, one of two things can happen:
+                //   1. Binding will succeed, and it will ignore our call to
+                //      the dynamic method, OR
+                //   2. Binding will fail, and it will use the MO we created
+                //      above.
+                //
+                return fallback(callDynamic);
+            }
+
+            private DynamicMetaObject BuildCallMethodWithResult(string methodName, DynamicMetaObjectBinder binder, Expression[] args, DynamicMetaObject fallbackResult, Fallback fallbackInvoke) {
+                if (!IsOverridden(methodName)) {
+                    return fallbackResult;
+                }
+
                 //
                 // Build a new expression like:
                 // {
@@ -445,16 +473,7 @@ namespace System.Dynamic {
                     ),
                     GetRestrictions().Merge(resultMO.Restrictions).Merge(fallbackResult.Restrictions)
                 );
-                
-                //
-                // Now, call fallback again using our new MO as the error
-                // When we do this, one of two things can happen:
-                //   1. Binding will succeed, and it will ignore our call to
-                //      the dynamic method, OR
-                //   2. Binding will fail, and it will use the MO we created
-                //      above.
-                //
-                return fallback(callDynamic);
+                return callDynamic;
             }
 
 
diff --git a/mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Actions/IInvokeOnGetBinder.cs b/mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Actions/IInvokeOnGetBinder.cs
new file mode 100644 (file)
index 0000000..fd14068
--- /dev/null
@@ -0,0 +1,36 @@
+/* ****************************************************************************
+ *
+ * Copyright (c) Microsoft Corporation. 
+ *
+ * This source code is subject to terms and conditions of the Microsoft Public License. A 
+ * copy of the license can be found in the License.html file at the root of this distribution. If 
+ * you cannot locate the  Microsoft Public License, please send an email to 
+ * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound 
+ * by the terms of the Microsoft Public License.
+ *
+ * You must not remove this notice, or any other, from this software.
+ *
+ *
+ * ***************************************************************************/
+
+namespace System.Dynamic {
+    /// <summary>
+    /// Represents information about a dynamic get member operation, indicating
+    /// if the get member should invoke properties when performing the get.
+    /// </summary>
+    public interface IInvokeOnGetBinder {
+        /// <summary>
+        /// Gets the value indicating if this GetMember should invoke properties
+        /// when performing the get. The default value when this interface is not present
+        /// is true.
+        /// </summary>
+        /// <remarks>
+        /// This property is used by some languages to get a better COM interop experience.
+        /// When the value is set to false, the dynamic COM object won't invoke the object
+        /// but will instead bind to the name, and return an object that can be invoked or
+        /// indexed later. This is useful for indexed properties and languages that don't
+        /// produce InvokeMember call sites.
+        /// </remarks>
+        bool InvokeOnGet { get; }
+    }
+}
index 7ebb43f246256c2ad9e7972ab46038c4b440a3e5..f582eab01ab2199c62401665160e80cfd3a2293e 100644 (file)
@@ -248,6 +248,10 @@ namespace System.Dynamic.Utils {
             if (source.IsInterface || dest.IsInterface) {
                 return true;
             }
+            // Variant delegate conversion
+            if (IsLegalExplicitVariantDelegateConversion(source, dest))
+                return true;
+                
             // Object conversion
             if (source == typeof(object) || dest == typeof(object)) {
                 return true;
@@ -255,6 +259,102 @@ namespace System.Dynamic.Utils {
             return false;
         }
 
+        private static bool IsCovariant(Type t)
+        {
+            Debug.Assert(t != null);
+            return 0 != (t.GenericParameterAttributes & GenericParameterAttributes.Covariant);
+        }
+
+        private static bool IsContravariant(Type t)
+        {
+            Debug.Assert(t != null);
+            return 0 != (t.GenericParameterAttributes & GenericParameterAttributes.Contravariant);
+        }
+
+        private static bool IsInvariant(Type t)
+        {
+            Debug.Assert(t != null);
+            return 0 == (t.GenericParameterAttributes & GenericParameterAttributes.VarianceMask);
+        }
+
+        private static bool IsDelegate(Type t)
+        {
+            Debug.Assert(t != null);
+            return t.IsSubclassOf(typeof(System.Delegate));
+        }
+
+        internal static bool IsLegalExplicitVariantDelegateConversion(Type source, Type dest)
+        {
+            Debug.Assert(source != null && dest != null);
+
+            // There *might* be a legal conversion from a generic delegate type S to generic delegate type  T, 
+            // provided all of the follow are true:
+            //   o Both types are constructed generic types of the same generic delegate type, D<X1,... Xk>.
+            //     That is, S = D<S1...>, T = D<T1...>.
+            //   o If type parameter Xi is declared to be invariant then Si must be identical to Ti.
+            //   o If type parameter Xi is declared to be covariant ("out") then Si must be convertible
+            //     to Ti via an identify conversion,  implicit reference conversion, or explicit reference conversion.
+            //   o If type parameter Xi is declared to be contravariant ("in") then either Si must be identical to Ti, 
+            //     or Si and Ti must both be reference types.
+
+            if (!IsDelegate(source) || !IsDelegate(dest) || !source.IsGenericType || !dest.IsGenericType)
+                return false;
+
+            Type genericDelegate = source.GetGenericTypeDefinition();
+
+            if (dest.GetGenericTypeDefinition() != genericDelegate)
+                return false;
+
+            Type[] genericParameters = genericDelegate.GetGenericArguments();
+            Type[] sourceArguments = source.GetGenericArguments();
+            Type[] destArguments = dest.GetGenericArguments();
+
+            Debug.Assert(genericParameters != null);
+            Debug.Assert(sourceArguments != null);
+            Debug.Assert(destArguments != null);
+            Debug.Assert(genericParameters.Length == sourceArguments.Length);
+            Debug.Assert(genericParameters.Length == destArguments.Length);
+
+            for (int iParam = 0; iParam < genericParameters.Length; ++iParam)
+            {
+                Type sourceArgument = sourceArguments[iParam];
+                Type destArgument = destArguments[iParam];
+
+                Debug.Assert(sourceArgument != null && destArgument != null);
+               
+                // If the arguments are identical then this one is automatically good, so skip it.
+                if (AreEquivalent(sourceArgument, destArgument))
+                {
+                    continue;
+                }
+                
+                Type genericParameter = genericParameters[iParam];
+
+                Debug.Assert(genericParameter != null);
+
+                if (IsInvariant(genericParameter))
+                {
+                    return false;
+                }
+        
+                if (IsCovariant(genericParameter))
+                {
+                    if (!HasReferenceConversion(sourceArgument, destArgument))
+                    {
+                        return false;
+                    }
+                }
+                else if (IsContravariant(genericParameter))
+                {
+                    if (sourceArgument.IsValueType || destArgument.IsValueType)
+                    {
+                        return false;
+                    }
+                }
+            }
+            return true;
+        }
+
         internal static bool IsConvertible(Type type) {
             type = GetNonNullableType(type);
             if (type.IsEnum) {
index 5e3b9e93685a9456fc75e228691b598dc60da768..d632c72b6902100f9b2f8f414b86e72ec5c9551e 100644 (file)
@@ -33,14 +33,8 @@ namespace System.Linq.Expressions {
     internal static class ConstantCheck {
 
         internal static bool IsNull(Expression e) {
-            switch (e.NodeType) {
-                case ExpressionType.Constant:
-                    return ((ConstantExpression)e).Value == null;
-
-                case ExpressionType.TypeAs:
-                    var typeAs = (UnaryExpression)e;
-                    // if the TypeAs check is guarenteed to fail, then its result will be null
-                    return AnalyzeTypeIs(typeAs) == AnalyzeTypeIsResult.KnownFalse;
+            if (e.NodeType == ExpressionType.Constant) {
+                return ((ConstantExpression)e).Value == null;
             }
             return false;
         }
@@ -58,19 +52,6 @@ namespace System.Linq.Expressions {
             return AnalyzeTypeIs(typeIs.Expression, typeIs.TypeOperand);
         }
 
-        /// <summary>
-        /// If the result of a unary TypeAs expression is known statically, this
-        /// returns the result, otherwise it returns null, meaning we'll need
-        /// to perform the IsInst instruction at runtime.
-        /// 
-        /// The result of this function must be equivalent to IsInst, or
-        /// null.
-        /// </summary>
-        internal static AnalyzeTypeIsResult AnalyzeTypeIs(UnaryExpression typeAs) {
-            Debug.Assert(typeAs.NodeType == ExpressionType.TypeAs);
-            return AnalyzeTypeIs(typeAs.Operand, typeAs.Type);
-        }
-
         /// <summary>
         /// If the result of an isinst opcode is known statically, this
         /// returns the result, otherwise it returns null, meaning we'll need
@@ -114,13 +95,9 @@ namespace System.Linq.Expressions {
                 return AnalyzeTypeIsResult.KnownAssignable;
             }
 
-            //
-            // If we couldn't statically assign and the type is sealed, no
-            // value at runtime can make isinst succeed
-            //
-            if (nnOperandType.IsSealed) {
-                return AnalyzeTypeIsResult.KnownFalse;
-            }
+            // We used to have an if IsSealed, return KnownFalse check here.
+            // but that doesn't handle generic types & co/contravariance correctly.
+            // So just use IsInst, which we know always gives us the right answer.
 
             // Otherwise we need a full runtime check
             return AnalyzeTypeIsResult.Unknown;
index 6da45482a7c8505004c18c23050830686a1703c3..348b8d1a556e484dbc1ddc096caaea3384d63622 100644 (file)
@@ -611,7 +611,9 @@ namespace System.Linq.Expressions.Compiler {
             if (typeFrom.IsInterface || // interface cast
                typeTo.IsInterface ||
                typeFrom == typeof(object) || // boxing cast
-               typeTo == typeof(object)) {
+               typeTo == typeof(object) ||
+               TypeUtils.IsLegalExplicitVariantDelegateConversion(typeFrom, typeTo))
+            {
                 il.EmitCastToType(typeFrom, typeTo);
             } else if (isTypeFromNullable || isTypeToNullable) {
                 il.EmitNullableConversion(typeFrom, typeTo, isChecked);
@@ -661,6 +663,7 @@ namespace System.Linq.Expressions.Compiler {
             } else {
                 TypeCode tc = Type.GetTypeCode(typeTo);
                 if (isChecked) {
+                    // Overflow checking needs to know if the source value on the IL stack is unsigned or not.
                     if (isFromUnsigned) {
                         switch (tc) {
                             case TypeCode.SByte:
@@ -723,56 +726,47 @@ namespace System.Linq.Expressions.Compiler {
                         }
                     }
                 } else {
-                    if (isFromUnsigned) {
-                        switch (tc) {
-                            case TypeCode.SByte:
-                            case TypeCode.Byte:
-                                il.Emit(OpCodes.Conv_U1);
-                                break;
-                            case TypeCode.Int16:
-                            case TypeCode.UInt16:
-                            case TypeCode.Char:
-                                il.Emit(OpCodes.Conv_U2);
-                                break;
-                            case TypeCode.Int32:
-                            case TypeCode.UInt32:
-                                il.Emit(OpCodes.Conv_U4);
-                                break;
-                            case TypeCode.Int64:
-                            case TypeCode.UInt64:
+                    switch (tc) {
+                        case TypeCode.SByte:
+                            il.Emit(OpCodes.Conv_I1);
+                            break;
+                        case TypeCode.Byte:
+                            il.Emit(OpCodes.Conv_U1);
+                            break;
+                        case TypeCode.Int16:
+                            il.Emit(OpCodes.Conv_I2);
+                            break;
+                        case TypeCode.UInt16:
+                        case TypeCode.Char:
+                            il.Emit(OpCodes.Conv_U2);
+                            break;
+                        case TypeCode.Int32:
+                            il.Emit(OpCodes.Conv_I4);
+                            break;
+                        case TypeCode.UInt32:
+                            il.Emit(OpCodes.Conv_U4);
+                            break;
+                        case TypeCode.Int64:
+                            if (isFromUnsigned) {
                                 il.Emit(OpCodes.Conv_U8);
-                                break;
-                            default:
-                                throw Error.UnhandledConvert(typeTo);
-                        }
-                    } else {
-                        switch (tc) {
-                            case TypeCode.SByte:
-                            case TypeCode.Byte:
-                                il.Emit(OpCodes.Conv_I1);
-                                break;
-                            case TypeCode.Int16:
-                            case TypeCode.UInt16:
-                            case TypeCode.Char:
-                                il.Emit(OpCodes.Conv_I2);
-                                break;
-                            case TypeCode.Int32:
-                            case TypeCode.UInt32:
-                                il.Emit(OpCodes.Conv_I4);
-                                break;
-                            case TypeCode.Int64:
-                            case TypeCode.UInt64:
+                            } else {
                                 il.Emit(OpCodes.Conv_I8);
-                                break;
-                            default:
-                                throw Error.UnhandledConvert(typeTo);
-                        }
+                            }
+                            break;
+                        case TypeCode.UInt64:
+                            if (isFromUnsigned || isFromFloatingPoint) {
+                                il.Emit(OpCodes.Conv_U8);
+                            } else {
+                                il.Emit(OpCodes.Conv_I8);
+                            }
+                            break;
+                        default:
+                            throw Error.UnhandledConvert(typeTo);
                     }
                 }
             }
         }
 
-
         private static void EmitNullableToNullableConversion(this ILGenerator il, Type typeFrom, Type typeTo, bool isChecked) {
             Debug.Assert(TypeUtils.IsNullableType(typeFrom));
             Debug.Assert(TypeUtils.IsNullableType(typeTo));
index 4769057e5d524259eb681ded3ccbc667a8fe9d98..69b1f0150ce52fbd8270a18441561d356fe9c98a 100644 (file)
@@ -14,7 +14,7 @@
     <AssemblyName>Microsoft.Scripting.Core</AssemblyName>
 <DocumentationFile>$(OutputPath)\Microsoft.Scripting.Core.XML</DocumentationFile>
     <NoWarn>1591</NoWarn>
-<AssemblyOriginatorKeyFile>$(SolutionDir)\Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
+<AssemblyOriginatorKeyFile>$(SolutionDir)Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
     <SignAssembly Condition="'$(SignAssembly)' == '' And Exists('$(AssemblyOriginatorKeyFile)')">true</SignAssembly>
     <SignedSym Condition="'$(SignAssembly)' == 'true'">SIGNED</SignedSym>
     <DelaySign>true</DelaySign>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'FxCop|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\fxcop\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\fxcop\</OutputPath>
     <DefineConstants>TRACE;$(SignedSym);CLR2</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -39,7 +39,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Debug\</OutputPath>
 <DocumentationFile>$(OutputPath)\Microsoft.Scripting.Core.xml</DocumentationFile>
     <DefineConstants>DEBUG;TRACE;$(SignedSym);CLR2</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -52,7 +52,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Release\</OutputPath>
 <DocumentationFile>$(OutputPath)\Microsoft.Scripting.Core.xml</DocumentationFile>
     <DefineConstants>TRACE;$(SignedSym);CLR2</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -64,7 +64,7 @@
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Silverlight Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
-<OutputPath>$(SolutionDir)\..\Bin\Silverlight Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Silverlight Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;SILVERLIGHT;CLR2</DefineConstants>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
     <DebugType>full</DebugType>
@@ -77,7 +77,7 @@
     <SilverlightBuild>true</SilverlightBuild>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Silverlight Release|AnyCPU' ">
-<OutputPath>$(SolutionDir)\..\Bin\Silverlight Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Silverlight Release\</OutputPath>
     <DefineConstants>TRACE;SILVERLIGHT;CLR2</DefineConstants>
 <DocumentationFile>$(OutputPath)\Microsoft.Scripting.Core.xml</DocumentationFile>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
     </Compile>
     <Compile Include="Actions\CallInfo.cs" />
     <Compile Include="Actions\CallSiteOps.cs" />
+    <Compile Include="Actions\IInvokeOnGetBinder.cs" />
     <Compile Include="Actions\InvokeMemberBinder.cs" />
     <Compile Include="Actions\BinaryOperationBinder.cs" />
     <Compile Include="Actions\CallSite.cs" />
index 936dfe027f7a6e9b2f7c65d0391b5f91f275d96d..27331e551609be1ac27a87240f64ddef297618da 100644 (file)
@@ -11,7 +11,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>Microsoft.Scripting.ExtensionAttribute</RootNamespace>
     <AssemblyName>Microsoft.Scripting.ExtensionAttribute</AssemblyName>
-<AssemblyOriginatorKeyFile>$(SolutionDir)\Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
+<AssemblyOriginatorKeyFile>$(SolutionDir)Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
     <SignAssembly Condition="'$(SignAssembly)' == '' And Exists('$(AssemblyOriginatorKeyFile)')">true</SignAssembly>
     <SignedSym Condition="'$(SignAssembly)' == 'true'">SIGNED</SignedSym>
     <DelaySign>true</DelaySign>
@@ -22,7 +22,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'FxCop|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\fxcop\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\fxcop\</OutputPath>
     <DefineConstants>TRACE;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -34,7 +34,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -44,7 +44,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Release\</OutputPath>
     <DefineConstants>TRACE;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -54,7 +54,7 @@
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Silverlight Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
-<OutputPath>$(SolutionDir)\..\Bin\Silverlight Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Silverlight Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;SILVERLIGHT</DefineConstants>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
     <DebugType>full</DebugType>
@@ -66,7 +66,7 @@
     <SilverlightBuild>true</SilverlightBuild>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Silverlight Release|AnyCPU' ">
-<OutputPath>$(SolutionDir)\..\Bin\Silverlight Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Silverlight Release\</OutputPath>
     <DefineConstants>TRACE;SILVERLIGHT</DefineConstants>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
     <NoWarn>1591,618</NoWarn>
index 4b6bf4e90edb16fe0696d4d3565e6ec16af8e38e..16f747334d14a4d98cd571c3a5fcb4251680770b 100644 (file)
@@ -55,11 +55,8 @@ using System.Security;
 [assembly: System.Resources.NeutralResourcesLanguage("en-US")]
 
 #if !SILVERLIGHT
-[assembly: AssemblyVersion("0.9.6.20")]
-[assembly: AssemblyFileVersion("1.0.0.00")]
-[assembly: AssemblyInformationalVersion("1.0")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.1.00")]
+[assembly: AssemblyInformationalVersion("1.0.1")]
 [assembly: AllowPartiallyTrustedCallers]
-#if CODEPLEX_40
-[assembly: SecurityRules(SecurityRuleSet.Level1)]
-#endif
 #endif
index 071bc56e88d070d70a2b9ff7bb471a2a8eff20ee..bc47e001f31485a73708513de419f899139aaa80 100644 (file)
@@ -56,10 +56,7 @@ using System.Security;
 \r
 #if !SILVERLIGHT\r
 [assembly: AssemblyVersion("2.0.0.0")]  // shouldn't change, this assembly is unchanged.  This is the version it originally shipped as.\r
-[assembly: AssemblyFileVersion("1.0.0.00")]\r
-[assembly: AssemblyInformationalVersion("1.0")]\r
-[assembly: AllowPartiallyTrustedCallers]
-#if CODEPLEX_40
-[assembly: SecurityRules(SecurityRuleSet.Level1)]
-#endif\r
+[assembly: AssemblyFileVersion("1.0.1.00")]\r
+[assembly: AssemblyInformationalVersion("1.0.1")]\r
+[assembly: AllowPartiallyTrustedCallers]\r
 #endif\r
index 22938af0480acd20bb3a2f9c2a725644949eff38..79eebfbd561bd7629b3ce0840edaa05d54e672e5 100644 (file)
@@ -6,18 +6,17 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
+    <ProductVersion>10.0.20624</ProductVersion>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{2AE75F5A-CD1F-4925-9647-AF4D1C282FB4}</ProjectGuid>
     <OutputType>Library</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <RootNamespace>System.Scripting</RootNamespace>
     <AssemblyName>System.Core</AssemblyName>
 <DocumentationFile>$(OutputPath)\System.Core.XML</DocumentationFile>
     <NoWarn>1591</NoWarn>
     <OldToolsVersion>2.0</OldToolsVersion>
-<AssemblyOriginatorKeyFile>$(SolutionDir)\Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
+<AssemblyOriginatorKeyFile>$(SolutionDir)Runtime\MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
     <SignAssembly Condition="'$(SignAssembly)' == '' And Exists('$(AssemblyOriginatorKeyFile)')">true</SignAssembly>
     <SignedSym Condition="'$(SignAssembly)' == 'true'">SIGNED</SignedSym>
     <DelaySign>true</DelaySign>
@@ -27,7 +26,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'FxCop|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\fxcop\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\fxcop\</OutputPath>
     <DefineConstants>TRACE;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -42,7 +41,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Debug\</OutputPath>
 <DocumentationFile>$(OutputPath)\System.Core.xml</DocumentationFile>
     <DefineConstants>DEBUG;TRACE;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -55,7 +54,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-<OutputPath>$(SolutionDir)\..\Bin\Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Release\</OutputPath>
 <DocumentationFile>$(OutputPath)\System.Scripting.Core.xml</DocumentationFile>
     <DefineConstants>TRACE;$(SignedSym)</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -67,7 +66,7 @@
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Silverlight Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
-<OutputPath>$(SolutionDir)\..\Bin\Silverlight Debug\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Silverlight Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;SILVERLIGHT</DefineConstants>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
     <DebugType>full</DebugType>
@@ -81,7 +80,7 @@
     <SilverlightSdkPath>$(ProgramFiles)\Microsoft Silverlight\2.0.31005.0</SilverlightSdkPath>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Silverlight Release|AnyCPU' ">
-<OutputPath>$(SolutionDir)\..\Bin\Silverlight Release\</OutputPath>
+<OutputPath>$(SolutionDir)..\Bin\Silverlight Release\</OutputPath>
     <DefineConstants>TRACE;SILVERLIGHT</DefineConstants>
 <DocumentationFile>$(OutputPath)\System.Scripting.Core.xml</DocumentationFile>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
     <Compile Include="Actions\BinaryOperationBinder.cs" />
     <Compile Include="Actions\CallSite.cs" />
     <Compile Include="Actions\CallSiteBinder.cs" />
-    <Compile Include="Actions\CallSiteRule.cs" />
     <Compile Include="Actions\CallSiteHelpers.cs" />
     <Compile Include="Actions\ConvertBinder.cs" />
     <Compile Include="Actions\DeleteIndexBinder.cs" />
     <Compile Include="Actions\RuleCache.cs" />
     <Compile Include="Actions\SetIndexBinder.cs" />
     <Compile Include="Actions\SetMemberBinder.cs" />
-    <Compile Include="Actions\SmallRuleSet.cs" />
     <Compile Include="Ast\Expression.DebuggerProxy.cs" />
     <Compile Include="Ast\IArgumentProvider.cs" />
     <Compile Include="Ast\ListArgumentProvider.cs" />
-    <Compile Include="Compiler\ArgumentPrepender.cs" />
     <Compile Include="Actions\UnaryOperationBinder.cs" />
     <Compile Include="Ast\ExpressionStringBuilder.cs" />
     <Compile Include="Compiler\BoundConstants.cs" />
     <Compile Include="Compiler\RuntimeVariableList.cs" />
     <Compile Include="Actions\UpdateDelegates.Generated.cs" />
     <Compile Include="Ast\DynamicExpression.cs" />
-    <Compile Include="Actions\AutoRuleTemplate.cs" />
     <Compile Include="Ast\BinaryExpression.cs" />
     <Compile Include="Ast\BlockExpression.cs" />
     <Compile Include="Ast\CatchBlock.cs" />
     <Compile Include="Ast\ParameterExpression.cs" />
     <Compile Include="Ast\SwitchCase.cs" />
     <Compile Include="Ast\SwitchExpression.cs" />
-    <Compile Include="Ast\TreeComparer.cs" />
     <Compile Include="Ast\TryExpression.cs" />
     <Compile Include="Ast\TypeBinaryExpression.cs" />
     <Compile Include="Ast\TypeUtils.cs" />
     <Compile Include="Compiler\ConstantCheck.cs" />
     <Compile Include="Compiler\ExpressionQuoter.cs" />
     <Compile Include="Ast\ExpressionVisitor.cs" />
-    <Compile Include="Ast\ExpressionWriter.cs" />
+    <Compile Include="Ast\DebugViewWriter.cs" />
     <Compile Include="Compiler\HoistedLocals.cs" />
     <Compile Include="Compiler\KeyedQueue.cs" />
     <Compile Include="Compiler\LambdaCompiler.Address.cs" />
     <Compile Include="Utils\TrueReadOnlyCollection.cs" />
     <Compile Include="Utils\TypeExtensions.cs" />
     <Compile Include="Stubs.cs" />
-    <Compile Include="Utils\WeakUniqueSet.cs" />
   </ItemGroup>
   <ItemGroup>
     <Content Include="..\..\System\Linq\Expressions\System.Linq.Expressions.txt">