[Issue 23105] `__trait(getMember)` and `mixin()` of the same code as a string behave differently

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri May 13 06:49:31 UTC 2022


https://issues.dlang.org/show_bug.cgi?id=23105

Dlang Bot <dlang-bot at dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Dlang Bot <dlang-bot at dlang.rocks> ---
dlang/dmd pull request #14119 "Fix Issue 23105 - `__trait(getMember)` and
`mixin()` of the same code as a string behave differently" was merged into
master:

- acee742790929cf7fb3ea9817254708baa06f3e1 by Boris Carvajal:
  Fix Issue 23105 - `__trait(getMember)` and `mixin()` of the same code as a
string behave differently

  The fix is to remove the `SCOPE.alias_` dependency when resolving
  TypeTraits on certain conditions, it's not necessary, the trait
  resolves to type or symbol naturally.

  Changes:
  - Remove `SCOPE.alias_` as it is no longer used.
  - Remove a huge `if` with an early error from `TypeTraits` typeSemantic.
  - Cache not only symbols but also types in TypeTraits
  (TypeTraits.sym -> TypeTraits.obj).
  - Move `TypeTraits.typeSemantic` logic to `TypeTraits.resolve` since
  `typeSemantic` should only care about giving a type and `resolve`
  about maybe something else (like TypeMixin logic).

https://github.com/dlang/dmd/pull/14119

--


More information about the Digitalmars-d-bugs mailing list