[dmd-internals] [D-Programming-Language/dmd] 163724: fix Issue 9258 - opAssign with base class triggers...

GitHub noreply at github.com
Thu Jan 31 01:47:26 PST 2013


  Branch: refs/heads/master
  Home:   https://github.com/D-Programming-Language/dmd
  Commit: 1637248da9f358d6eb10f41e78c8268acbc4492a
      https://github.com/D-Programming-Language/dmd/commit/1637248da9f358d6eb10f41e78c8268acbc4492a
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2013-01-30 (Wed, 30 Jan 2013)

  Changed paths:
    M src/aggregate.h
    M src/class.c
    M src/clone.c
    M test/runnable/assignable.d

  Log Message:
  -----------
  fix Issue 9258 - opAssign with base class triggers "identity assignment operator overload" error


  Commit: ca03c609211952f9640d38531dd4f282cedc22ac
      https://github.com/D-Programming-Language/dmd/commit/ca03c609211952f9640d38531dd4f282cedc22ac
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2013-01-30 (Wed, 30 Jan 2013)

  Changed paths:
    M src/clone.c
    M test/runnable/assignable.d

  Log Message:
  -----------
  fix Issue 9416 - [REG][2.060 -> 02.061] DMD eagerly instantiates template parameter-less opAssign


  Commit: 6398c58f36c698dd6ae29217729e4a80f9869998
      https://github.com/D-Programming-Language/dmd/commit/6398c58f36c698dd6ae29217729e4a80f9869998
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2013-01-30 (Wed, 30 Jan 2013)

  Changed paths:
    M src/clone.c
    M src/expression.c
    M src/mtype.c
    M src/mtype.h
    M src/opover.c
    M test/runnable/assignable.d

  Log Message:
  -----------
  fix Issue 9404 - Nullable is unusable with 2.061

Now, user-defined but non identity opAssign is just ignored in identity assignment resolving.

For the identity assignment operation, following four operations might be defined by the compiler.

1. If a user-defined identity `opAssign` is defined, it is used.
2. If the struct has postbit constructor, "copy & swap" operation is used.
3. If member-wise assignment is necessary, it is used.
4. Otherwise, assignment possibility is calculated from bitwise assignable of whole members.

As a conclusion, except for the case where the members have disabled opAssign, identity assignment will succeed in almost cases.


  Commit: 3bd7ca63feb9e997d10d1095ddc7cf09ca2c6c41
      https://github.com/D-Programming-Language/dmd/commit/3bd7ca63feb9e997d10d1095ddc7cf09ca2c6c41
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2013-01-30 (Wed, 30 Jan 2013)

  Changed paths:
    M src/clone.c

  Log Message:
  -----------
  Clean up code for the __xopEquals generation

Use same way with the built-in opAssign generation.


  Commit: aa33955a6ed38ab64df903b2298988f9cde42914
      https://github.com/D-Programming-Language/dmd/commit/aa33955a6ed38ab64df903b2298988f9cde42914
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2013-01-30 (Wed, 30 Jan 2013)

  Changed paths:
    M test/runnable/assignable.d

  Log Message:
  -----------
  Clean up test cases for issue 6174

Merged similar tests by making them parameterize.


  Commit: b94fd3b7d2164ef1fc924265d4c5d04c7c673463
      https://github.com/D-Programming-Language/dmd/commit/b94fd3b7d2164ef1fc924265d4c5d04c7c673463
  Author: Walter Bright <walter at walterbright.com>
  Date:   2013-01-31 (Thu, 31 Jan 2013)

  Changed paths:
    M src/aggregate.h
    M src/class.c
    M src/clone.c
    M src/expression.c
    M src/mtype.c
    M src/mtype.h
    M src/opover.c
    M test/runnable/assignable.d

  Log Message:
  -----------
  Merge pull request #1585 from 9rnsr/fix_assign

Issue 9258 & 9404 & 9416 - fix regressions around opAssign


Compare: https://github.com/D-Programming-Language/dmd/compare/d617999ef0b3...b94fd3b7d216


More information about the dmd-internals mailing list