Thread overview | ||||||
---|---|---|---|---|---|---|
|
March 01, 2016 Lazy param with nothrow | ||||
---|---|---|---|---|
| ||||
This very very simple function [1] won't compile. It says that param t is not nothrow. Why? What's wrong with this? http://dpaste.dzfl.pl/bfc382e62711 |
March 01, 2016 Re: Lazy param with nothrow | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrea Fontana | On Tuesday, 1 March 2016 at 13:35:08 UTC, Andrea Fontana wrote:
> This very very simple function [1] won't compile.
> It says that param t is not nothrow. Why? What's wrong with this?
>
> http://dpaste.dzfl.pl/bfc382e62711
writeln isn't nothrow so you can't call it from test which is nothrow without a try .. catch.
The error message is misleading.
|
March 01, 2016 Re: Lazy param with nothrow | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrea Fontana | On 01.03.2016 14:35, Andrea Fontana wrote: > This very very simple function [1] won't compile. > It says that param t is not nothrow. Why? What's wrong with this? > > http://dpaste.dzfl.pl/bfc382e62711 It's a bug. Lazy parameters generate delegates. nothrow is currently not inferred for those delegates. It should be. https://issues.dlang.org/show_bug.cgi?id=12647 |
March 01, 2016 Re: Lazy param with nothrow | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nemo | On Tuesday, 1 March 2016 at 13:41:38 UTC, Nemo wrote:
> On Tuesday, 1 March 2016 at 13:35:08 UTC, Andrea Fontana wrote:
>> This very very simple function [1] won't compile.
>> It says that param t is not nothrow. Why? What's wrong with this?
>>
>> http://dpaste.dzfl.pl/bfc382e62711
>
> writeln isn't nothrow so you can't call it from test which is nothrow without a try .. catch.
> The error message is misleading.
You are right about writeln & nothrow but the problem is still there if instead of:
writeln(t);
you write:
t;
(that's a reduced example, in real code I don't use writeln or other non-nothrow functions)
|
Copyright © 1999-2021 by the D Language Foundation