1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828
|
2010-05-19 Jb Evain <jbevain@novell.com>
backport of r157550.
* ConstantExpression.cs: fix emission of nullable constants.
2010-01-08 Jb Evain <jbevain@novell.com>
* Expression.cs (Call): properly deal with zero length array
of type arguments for non generic methods. Fixes #568989.
backport r149241.
2009-12-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
* Expression.cs: expression can be null for static getters. Patch from
Miguel de Icaza (miguel@novell.com).
2009-11-15 Jb Evain <jbevain@novell.com>
backport of 146225.
* Expression (Call): deal with lambda expression <> delegate
comparison when filtering methods.
Fixes #536637.
2009-11-15 Jb Evain <jbevain@novell.com>
backport of 146222.
* Expression (Call): better filtering of generic methods.
Fixes #537768.
2009-11-14 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs: isolate quoted expressions.
* EmitContext.cs (ParameterReplacer): new helper type
to replace the parameters of isolated expressions.
Fix #550722.
2009-10-08 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs (Compile): use the interpreter on MonoTouch.
2009-09-03 Jb Evain <jbevain@novell.com>
* ConstantExpression.cs (Emit): add support to emit DBNull values.
2009-09-03 Jb Evain <jbevain@novell.com>
* ConstantExpression.cs (Emit): add support for emitting
DateTime constants.
2009-03-05 Jb Evain <jbevain@novell.com>
* EmitContext.cs
* ParameterExpression.cs:
add support for hoisted locals.
2009-02-24 Jb Evain <jbevain@novell.com>
* Expression.cs (BinaryCoreCheck): fix comparison of enums
2009-02-23 Jb Evain <jbevain@novell.com>
* Expression.cs (IsNumber): actually decimal is rather a special
case, and not a primitive number.
2009-02-23 Jb Evain <jbevain@novell.com>
* Expression.cs (BinaryCoreCheck): add decimal operations
are provided by custom operators.
2008-12-17 Jb Evain <jbevain@novell.com>
* ExpressionTransformer.cs: fix VisitList.
2008-11-19 Jb Evain <jbevain@novell.com>
* Expression.cs: protect against open generic methods.
2008-10-08 Atsushi Enomoto <atsushi@ximian.com>
* Expression.cs : give us information about which type does not
implement Emit().
2008-10-03 Jb Evain <jbevain@novell.com>
* Expression.cs: make sure we properly test complex generic methods
as a Call candidate.
2008-09-22 Jb Evain <jbevain@novell.com>
* TypeBinaryExpression.cs: protect against testing void expressions.
Fixes bug #428309.
2008-09-01 Jb Evain <jbevain@novell.com>
* MemberBinding.cs: make .ctor protected instead of public.
2008-09-01 Jb Evain <jbevain@novell.com>
* Expression.cs: guard against null parameters passed to Lambda.
2008-08-30 Marek Safar <marek.safar@gmail.com>
* MemberBinding.cs: Made MemberBinding ctor public
2008-08-07 Jb Evain <jbevain@novell.com>
* Expression.cs (GetAssociatedProperty): strengthen accessors
comparisons.
2008-08-02 Zoltan Varga <vargaz@gmail.com>
* BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
shift amount like mcs compiled code does.
2008-07-19 Jb Evain <jbevain@novell.com>
* Expression.cs (Call, Field, Property): disallow instance arguments
on static members. See ms connect #339351.
2008-07-18 Jb Evain <jbevain@novell.com>
* Expression.cs, BinaryExpression.cs: fix retrieval of true and false
operators.
2008-06-20 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs, EmitContext.cs: refactor the emit context to
handle the fact that lambdas are compiled in a general context where
they share globals but are also able to use parameters from parent lambdas.
(Although parameter sharing is not implemented yet).
* BinaryExpression.cs (fix converted coalesce case to use the lambda
compilation code).
2008-06-09 Jb Evain <jbevain@novell.com>
* Extensions.cs (Type.IsExpression): add
* Expression.cs (CheckMethodArguments): modify the argument list
to quote arguments when if necessary.
2008-06-09 Jb Evain <jbevain@novell.com>
* Expression.cs (CheckLambda): quote body if required.
2008-06-07 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs (EmitConvertedCoalesce): implement.
2008-06-05 Jb Evain <jbevain@novell.com>
* Expression.cs (GetUserConversionMethod): check for convertion
operators on both types.
2008-06-05 Jb Evain <jbevain@novell.com>
* Expression.cs (ConditionalBinaryCheck): if a method is passed,
checked that the operators true and false are also defined.
2008-06-05 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs (Emit): deal with binary expressions
where only the left is lifted.
2008-06-05 Jb Evain <jbevain@novell.com>
* Extensions.cs: Add Type.MakeNullableType helper.
* Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
creat lifted/lifted to null/not lifted
user defined binary expressions.
* BinaryExpression.cs (Emit): implement compilation of
lifted and lifted to null user defined binary operators.
2008-06-05 Jb Evain <jbevain@novell.com>
* Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
unary expressions with user defined operators.
* UnaryExpression.cs (Emit): fix compilation of lifted user operators.
2008-05-30 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs (Emit): fix convertion from nullable
to nullable types.
2008-05-29 Jb Evain <jbevain@novell.com>
* Expression.cs (Power): allow bool?.
* BinaryExpression.cs: properly deal with lifted power expression.
2008-05-29 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs (Emit): fix lifted andalso and orelse.
2008-05-29 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs (Emit): properly emit lifted to null
relational binary expressions.
2008-05-28 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs (Emit): rework compilation of
arithmetic and relational lifted binary expressions.
2008-05-28 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs (Emit): implement support for compiling
lifted unary expressions.
2008-05-27 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs (EmitConvert): implement nullable to nullable
convert.
2008-05-20 Roei Erez <roeie@mainsoft.com>
* Extensions.cs: Add 'IsGenericImplementationOf' extension method
2008-05-15 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs, EmitContext.cs: emit convert from and
to nullable types.
2008-05-15 Jb Evain <jbevain@novell.com>
* Extensions.cs: add a few useful extensions such as
IsGenericInstanceOf and MakeGenericFrom.
2008-05-15 Roei Erez <roeie@mainsoft.com>
* ExpressionTransformer.cs: Add a base class for transforming Expressions.
In use at AsQueryable() implementation.
2008-05-14 Jb Evain <jbevain@novell.com>
* EmitContext.cs: only generate a new lambda name if we're in
a debug context.
2008-05-14 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs, EmitContext.cs: When encountering a lambda
inside an ET, compile it as a read of a global. Based on a patch
by Roei Erez <roeie@mainsoft.com>
2008-05-08 Jb Evain <jbevain@novell.com>
* Expression.cs, EmitContext.cs: deal with call to methods
with byref parameters.
2008-05-07 Roei Erez <roeie@mainsoft.com>
* Add ifdef TARGET_JVM
2008-05-03 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs: move checks to Expression
* Expression.cs: apply check for both typed and untyped lambda
creation, so that the constructor does not throws exception.
Needed to create instances of Expression<> for untyped lambda
factory method. Fixes #386322.
2008-05-02 Jb Evain <jbevain@novell.com>
* Expression.cs: make Emit virtual instead of abstract,
to allow externals libraries to extend Expression.
Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
2008-04-29 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs (EmitPrimitiveConversion): implement.
2008-04-28 Jb Evain <jbevain@novell.com>
* EmitContext.cs: deal with globals when encountering them while
compiling, and not ahead of time with a dedicated visitor.
2008-04-27 Jb Evain <jbevain@novell.com>
* ConstantExpression.cs (Emit): emit properly null nullable types.
2008-04-27 Jb Evain <jbevain@novell.com>
* Expression.cs: improve method finder.
2008-04-24 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs, EmitContext.cs: implement compilation
of Quote as a global load.
2008-04-23 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs: start implementing EmitConvert.
2008-04-23 Jb Evain <jbevain@novell.com>
* ConstantExpression.cs (Emit): properly Emit null constants.
2008-04-23 Jb Evain <jbevain@novell.com>
* Expression.cs (Constant): check for assignability, not for type
equality, when a type is passed.
2008-04-23 Jb Evain <jbevain@novell.com>
* ExpressionPrinter.cs: ToString convert properly.
2008-04-22 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs: implement IsLiftedToNull properly.
* Expression.cs (Convert, ConvertChecked): implemented computing
of IsLifted and IsLiftedToNull for conversions.
2008-04-22 Jb Evain <jbevain@novell.com>
* Expression.cs (Convert, ConvertChecked): implement.
2008-04-21 Jb Evain <jbevain@novell.com>
* Expression.cs (Call): don't rely on the fact that if the
instance expression is null, then it's a static call. Explicitely
check on the MethodInfo for that.
* EmitContext.cs (EmitCall): same pattern.
2008-04-20 Jb Evain <jbevain@novell.com>
* MemberMemberBinding.cs (Emit): implement.
2008-04-19 Jb Evain <jbevain@novell.com>
* EmitContext.cs: infrastructure work to attach a compiled
lambda expression to an execution scope, and to detect and store
external globals in the scope.
* ConstantExpression.cs: load globals from the scope.
2008-04-19 Jb Evain <jbevain@novell.com>
* ExpressionVisitor.cs (Visit): don't die because of Power.
2008-04-09 Jb Evain <jbevain@novell.com>
* Expression.cs: check for illegal booleab unary expressions.
2008-04-09 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs: implement compilation of negate.
2008-04-09 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
to null for simple unary operators. Implement Not compilation.
2008-04-08 Jb Evain <jbevain@novell.com>
* ElementInit.cs: emit pop if the add method doesn't return void.
2008-03-20 Jb Evain <jbevain@novell.com>
* Expression.cs: use the new and more complete IsAssignableTo
instead of IsAssignableFrom.
2008-03-19 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs: use the new standardified IsAssignableTo,
fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
2008-03-19 Jb Evain <jbevain@novell.com>
* Extensions.cs (Type.IsAssignableTo): deal with arrays.
2008-03-13 Jb Evain <jbevain@novell.com>
* NewArrayExpression.cs (EmitNewArrayBounds): implement.
2008-03-12 Jb Evain <jbevain@novell.com>
* NewArrayExpression.cs (Emit): naive implementation of emit support
for array initialization.
2008-03-11 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs: very naive implementation of emitting
array accesses.
2008-03-11 Jb Evain <jbevain@novell.com>
* *.cs: Move the different Emit* helpers to EmitContext,
so that they get used more naturally by the non Expression
types.
2008-03-10 Jb Evain <jbevain@novell.com>
* TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
* UnaryExpression.cs: implement TypeAs using the EmitIsInst.
2008-03-10 Jb Evain <jbevain@novell.com>
* TypeBinaryExpression.cs (Emit): implement.
2008-03-08 Jb Evain <jbevain@novell.com>
* MemberListBinding.cs (Emit): implement.
* MemberBinding.cs (EmitLoadMember): add helper.
2008-03-08 Jb Evain <jbevain@novell.com>
* MemberAssignment.cs (Emit): implement.
2008-03-08 Jb Evain <jbevain@novell.com>
* ElementInit.cs (Emit): implement.
2008-03-06 Jb Evain <jbevain@novell.com>
* EmitContext.cs: the DebugContext delegate the CreateDelegate
to a DynamicContext to avoid visibility issues in debug mode.
2008-03-06 Jb Evain <jbevain@novell.com>
* EmitContext.cs: Lambda methods bypass JIT visibility checks.
2008-03-06 Jb Evain <jbevain@novell.com>
* MethodCallExpression.cs, Expression.cs: refactor method calling
into a more sophisticated EmitCall in Expression.
* InvocationExpression.cs (Emit): implement using the previous EmitCall.
2008-03-06 Jb Evain <jbevain@novell.com>
* Expression.cs: add a EmitCall helper.
* MemberExpression.cs: implement property access.
2008-03-06 Jb Evain <jbevain@novell.com>
* MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
* MemberExpression.cs: use EmitLoad to load the instance field if needed.
2008-03-06 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs, Expression.cs: move EmitStored from
BinaryExpression to Expression.
* MethodCallExpression.cs: allow method calls on structs.
2008-03-05 Jb Evain <jbevain@novell.com>
* Expression.cs: Fix the Call method which takes an array
of type arguments.
2008-03-05 Jb Evain <jbevain@novell.com>
* Expression.cs: fix for a good chunk of lifted/liftToNull tests.
2008-02-26 Jb Evain <jbevain@novell.com>
* Expression.cs (Call): Guess the parameters type from the argument
types if needed.
2008-02-25 Jb Evain <jbevain@novell.com>
* NewExpression.cs (Emit): deal with value types construction.
2008-02-25 Jb Evain <jbevain@novell.com>
* Expression.cs, NewExpression.cs: deal with the fact that value types
don't have a parameterless constructor.
2008-02-24 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs, EmitContext.cs: make compilation
of delegate returning void work.
2008-02-24 Jb Evain <jbevain@novell.com>
* MethodCallExpression.cs: emit call or callvirt depending
on the virtuality of the method.
2008-02-24 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs: properly format error message.
2008-02-21 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs (EmitCoalesce): fix setup_null.
2008-02-21 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs (Emit): fix the both_are_null case.
2008-02-20 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs: implement MemberBind.
2008-02-20 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs: implement ListInit.
2008-02-19 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs: implement MemberInit.
2008-02-19 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs: implement last New
overload for anonymous types.
2008-02-08 Jb Evain <jbevain@novell.com>
* Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
add support for Invoke.
2008-02-04 Jb Evain <jbevain@novell.com>
* ExpressionPrinter.cs: fix printing of MemberListBinding.
2008-02-04 Jb Evain <jbevain@novell.com>
* Expression.cs, NewExpression.cs: make New(Type) test pass.
2008-02-04 Jb Evain <jbevain@novell.com>
* ExpressionPrinter.cs: fix and clean printing of ElementInit.
2008-02-02 Jb Evain <jbevain@novell.com>
* Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
2008-02-02 Jb Evain <jbevain@novell.com>
* Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
* Expression.cs, ExpressionPrinter.cs:Add ListBind
2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
* Expression.cs, ExpressionPrinter.cs:Add Elementinit
2008-01-31 Jb Evain <jbevain@novell.com>
* UnaryExpression.cs: emit array length.
2008-01-31 Jb Evain <jbevain@novell.com>
* MemberExpression.cs: Simple support for emitting fields.
2008-01-30 Jb Evain <jbevain@novell.com>
* MethodCallExpression.cs: very naive implementation of Emit.
2008-01-30 Jb Evain <jbevain@novell.com>
* NewExpression.cs: add Emit support for reference types.
2008-01-30 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs, EmitContext.cs: small refactoring.
Extract the different EmitContexts to their own file.
2008-01-29 Jb Evain <jbevain@novell.com>
* MethodCallExpression.cs, Expression.cs: complete Calls.
2008-01-29 Jb Evain <jbevain@novell.com>
* Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
implement the first flavors of New.
2008-01-27 Jb Evain <jbevain@novell.com>
* ConditionalExpression.cs: implement Emit.
2008-01-27 Jb Evain <jbevain@novell.com>
* Expression.cs: implement the last Lambda method.
2008-01-27 Jb Evain <jbevain@novell.com>
* LambdaExpression.cs: fix the Type of the LambdaExpressions.
2008-01-27 Olivier Dufour <olivier.duff@gmail.com>
* Expression.cs, InvocationExpession.cs,
ListInitExpression.cs, MemberInitExpression.cs
NewExpression.cs : Add all missing
constructor in Expressions and remove the base one
2008-01-25 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs: implement Bind.
2008-01-25 Jb Evain <jbevain@novell.com>
* MemberMemberBinding.cs, MemberListBinding.cs,
MemberAssignment.cs, MemberBinding.cs:
add constructors.
2008-01-25 Jb Evain <jbevain@novell.com>
* Expression.cs: implement PropertyOrField.
2008-01-24 Jb Evain <jbevain@novell.com>
* Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
implement Field and Property.
2008-01-22 Miguel de Icaza <miguel@novell.com>
* BinaryExpression.cs: Unleash the power of cut and paste.
Bring a bunch of operatros from mcs/expression.cs
* Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
used those from mcs, that was wrong. use the proper ones, clean
up the result.
* BinaryExpression.cs: Add method invocations for binary methods.
2008-01-22 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
2008-01-22 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
implement Expression.NewArrayBounds.
2008-01-22 Jb Evain <jbevain@novell.com>
* ExpressionPrinter.cs: fix Lambda and Equal.
2008-01-22 Miguel de Icaza <miguel@novell.com>
* BinaryExpression.cs (EmitCoalesce): Add support for emitting
code for Coalesce.
TODO: this does not use the "Conversion" Lambda, which am not sure
who generates this or what it is used for.
(EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
* Expression.cs: Add support for Coalesce.
(BinaryCoreCheck): Move more checking here, instead of the helper
routines, will remove them next.
* LambdaExpression.cs (Compile): Create the delegate last, so we
manage to save the assembly while debugging in case of error
2008-01-21 Miguel de Icaza <miguel@novell.com>
* Expression.cs (BinaryCoreCheck): Add checking for a few
operators here (to avoid doing a second pass, handles AndAlso and
OrElse).
(AndAlso, OrElse): Add some code.
* BinaryExpression.cs: Instead of using GetValueOrDefault use
get_Value, as we already probed for the lack of value.
Split out support for And/Or to a separate routine as the code is
not very easy to share with the arithmetics code.
2008-01-21 Marek Safar <marek.safar@gmail.com>
* BinaryExpression.cs: Fixed initobj initialization.
2008-01-21 Jb Evain <jbevain@novell.com>
* Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
Move the IsUnsigned helper from BinaryExpression to Expression,
so it can be used in UnaryExpression.
2008-01-21 Miguel de Icaza <miguel@novell.com>
* Start code generation for nullables, currently this generates
incorrect code for things like:
Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
e2.Compile ().Invoke (null, 3))
This should return null, but returns something else.
* Introduce LINQ_DBG env variable, which generates a linq file in
/tmp; It currently does not work as well as it should, as the
Func<> parameters do not mwatch the generated method.
Investigate.
2008-01-20 Miguel de Icaza <miguel@novell.com>
Introduce support for Nullable arguments, no code is generated for
these yet, its only tests + node creation behavior at this point.
* Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
as operators, they must both be nullable.
NullableTypes in the arguments are transformed into the underlying
values when doing the method validation.
2008-01-18 Miguel de Icaza <miguel@novell.com>
* ParameterExpression.cs: Add emit support.
2008-01-18 Jb Evain <jbevain@novell.com>
* Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
2008-01-18 Miguel de Icaza <miguel@novell.com>
* BinaryExpression.cs: Add support for emitting code for some
operators (ported from the Mono C# compiler).
Add tests.
2008-01-17 Miguel de Icaza <miguel@novell.com>
Beginning of code generation framework for Linq.Expressions.
Some code was borrowed by from the C# compiler
* Expression_T.cs: Fill in the blanks.
* LambdaExpression.cs: Validation of parameters mostly, a tiny bit
of codegen.
* ConstantExpression.cs: Mostly done, need to write tests for
non-fundamental types and other ValueType initializations.
2008-01-17 Jb Evain <jbevain@novell.com>
* Expression.cs: implement MakeMemberAccess.
2008-01-17 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
implement ArrayIndex.
2008-01-17 Jb Evain <jbevain@novell.com>
* Expression.cs: Use TypeCode for IsInt and IsNumber.
2008-01-16 Miguel de Icaza <miguel@novell.com>
* Expression.cs: Add support for user-defined operators.
Put back various binary operator tests.
2008-01-16 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs: fix call for static methods.
2008-01-15 Miguel de Icaza <miguel@novell.com>
* Expression.cs: Do validation on the method parameters and use
the return type if provided.
2008-01-15 Jb Evain <jbevain@novell.com>
* MethodCallExpression.cs, Expression.cs
ExpressionPrinter.cs: Implement Call (Expression, ...)
2008-01-15 Jb Evain <jbevain@novell.com>
* Expression.cs, ConditionalExpressionExpression.cs
ExpressionPrinter.cs : implement Expression.Condition.
2008-01-15 Jb Evain <jbevain@novell.com>
* Expression.cs,
ParameterExpression.cs,
ExpressionPrinter.cs: implement Expression.Parameter
2008-01-15 Jb Evain <jbevain@novell.com>
* ExpressionPrinter.cs (VisitBinaryExpression): simple
implementation (probably misses a few cases).
2008-01-14 Miguel de Icaza <miguel@novell.com>
* Expression.cs: Bring back the (most) of binary operators. Added
type checking as well and reorganized the source file by topic
instead of alphabetical sorting.
2008-01-14 Jb Evain <jbevain@novell.com>
* ExpressionPrinter.cs: print ArrayLength.
2008-01-14 Jb Evain <jbevain@novell.com>
* Expression.cs: TypeAs can't take value types.
* ExpressionPrinter.cs: implement TypeAs.
2008-01-14 Jb Evain <jbevain@novell.com>
* Expression.cs: implement TypeIs.
* ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
* TypeBinaryExpression.cs: add proper ctor.
2008-01-14 Jb Evain <jbevain@novell.com>
* Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
2008-01-14 Jb Evain <jbevain@novell.com>
* BinaryExpression.cs,
* Expression.cs: revert part of Miguel's last patch.
MakeBinary is expected to call the appropriate factory
methods. Whose methods that are responsible for creating
the good BinaryExpression, wether they use a custom method
or not.
2008-01-14 Jb Evain <jbevain@novell.com>
* Expression.cs: MakeUnary is expected to call the appropriate
factory methods.
2008-01-14 Miguel de Icaza <miguel@novell.com>
* Expression.cs (Constant, MakeBinary and consumers of it): Some
more fill-up changes.
MakeBinary will need much more work to support user-provided
types.
2008-01-13 Jb Evain <jbevain@novell.com>
* *.cs: fresh implementation.
|