gedaiu / fluent-asserts

DLang fluent assertions done right
http://fluentasserts.szabobogdan.com/
MIT License
43 stars 6 forks source link

Compilation Errors in DMD2.104.0 onward #102

Closed vnayar closed 4 months ago

vnayar commented 4 months ago

Starting with dmd-2.104.0, and at least in dmd-2.105.0, but not dmd-2.103.1, fluent-asserts no longer compiles. The problem appears to originate from using the concatenate operator ~ on types string and const(dstring), expecting an implicit conversion. The changelog does not appear to document such a change: https://dlang.org/changelog/2.104.0.html

(dmd-2.104.0) fluent-asserts$ dub test
             Generating test runner configuration 'fluent-asserts-test-unittest' for 'unittest' (library).
    Starting Performing "unittest" build using /home/vnayar/dlang/dmd-2.104.0/linux/bin64/dmd for x86_64.
  Up-to-date ddmp 0.0.1-0.dev.3: target for configuration [library] is up to date.
  Up-to-date either 1.1.3: target for configuration [unittest] is up to date.
  Up-to-date libdparse 0.20.0: target for configuration [library] is up to date.
    Building fluent-asserts 1.0.0+commit.2.gb6c6bc1: building configuration [fluent-asserts-test-unittest]
source/fluentasserts/core/message.d(184,27): Error: constructor `fluentasserts.core.message.Message.this(Type type, string text)` is not callable using argument types `(Type, dstring)`
source/fluentasserts/core/message.d(184,27):        cannot pass argument `diff.text` of type `dstring` to parameter `string text`
source/fluentasserts/core/message.d(188,27): Error: constructor `fluentasserts.core.message.Message.this(Type type, string text)` is not callable using argument types `(Type, dstring)`
source/fluentasserts/core/message.d(188,27):        cannot pass argument `diff.text` of type `dstring` to parameter `string text`
source/fluentasserts/core/message.d(192,27): Error: constructor `fluentasserts.core.message.Message.this(Type type, string text)` is not callable using argument types `(Type, dstring)`
source/fluentasserts/core/message.d(192,27):        cannot pass argument `diff.text` of type `dstring` to parameter `string text`
source/fluentasserts/core/results.d(303,18): Error: incompatible types for `(diffBegin ~ diffDelete) ~ (d.text)`: `string` and `const(dstring)`
source/fluentasserts/core/results.d(305,18): Error: incompatible types for `(diffBegin ~ diffInsert) ~ (d.text)`: `string` and `const(dstring)`
source/fluentasserts/core/results.d(307,18): Error: cannot implicitly convert expression `d.text` of type `const(dstring)` to `string`
source/fluentasserts/core/results.d(321,24): Error: function `fluentasserts.core.results.ResultPrinter.primary(string)` is not callable using argument types `(dstring)`
source/fluentasserts/core/results.d(321,24):        cannot pass argument `diff.text` of type `dstring` to parameter `string`
source/fluentasserts/core/results.d(325,31): Error: function `fluentasserts.core.results.ResultPrinter.successReverse(string)` is not callable using argument types `(dstring)`
source/fluentasserts/core/results.d(325,31):        cannot pass argument `diff.text` of type `dstring` to parameter `string`
source/fluentasserts/core/results.d(329,30): Error: function `fluentasserts.core.results.ResultPrinter.dangerReverse(string)` is not callable using argument types `(dstring)`
source/fluentasserts/core/results.d(329,30):        cannot pass argument `diff.text` of type `dstring` to parameter `string`