mirror of
https://github.com/dlang/dmd.git
synced 2025-04-28 22:20:37 +03:00
Merge pull request #15826 from ntrel/method-mod
[dmd/func.d] Reword 'method not callable using a $mod object' error for constructors Signed-off-by: Dennis <dkorpel@users.noreply.github.com> Signed-off-by: Nicholas Wilson <thewilsonator@users.noreply.github.com> Merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
This commit is contained in:
commit
0dfc7bd891
3 changed files with 26 additions and 3 deletions
|
@ -3437,8 +3437,12 @@ FuncDeclaration resolveFuncCall(const ref Loc loc, Scope* sc, Dsymbol s,
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
.error(loc, "%smethod `%s` is not callable using a %sobject",
|
if (fd.isCtorDeclaration())
|
||||||
funcBuf.peekChars(), fd.toPrettyChars(), thisBuf.peekChars());
|
.error(loc, "%s%s `%s` cannot construct a %sobject",
|
||||||
|
funcBuf.peekChars(), fd.kind(), fd.toPrettyChars(), thisBuf.peekChars());
|
||||||
|
else
|
||||||
|
.error(loc, "%smethod `%s` is not callable using a %sobject",
|
||||||
|
funcBuf.peekChars(), fd.toPrettyChars(), thisBuf.peekChars());
|
||||||
|
|
||||||
if (mismatches.isNotShared)
|
if (mismatches.isNotShared)
|
||||||
.errorSupplemental(fd.loc, "Consider adding `shared` here");
|
.errorSupplemental(fd.loc, "Consider adding `shared` here");
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
TEST_OUTPUT:
|
TEST_OUTPUT:
|
||||||
---
|
---
|
||||||
fail_compilation/fail217.d(22): Error: mutable method `fail217.Message.this` is not callable using a `immutable` object
|
fail_compilation/fail217.d(22): Error: mutable constructor `fail217.Message.this` cannot construct a `immutable` object
|
||||||
fail_compilation/fail217.d(13): Consider adding `const` or `inout` here
|
fail_compilation/fail217.d(13): Consider adding `const` or `inout` here
|
||||||
---
|
---
|
||||||
*/
|
*/
|
||||||
|
|
19
compiler/test/fail_compilation/immutable_ctor.d
Normal file
19
compiler/test/fail_compilation/immutable_ctor.d
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
TEST_OUTPUT:
|
||||||
|
---
|
||||||
|
fail_compilation/immutable_ctor.d(18): Error: `immutable` copy constructor `immutable_ctor.S1.this` cannot construct a mutable object
|
||||||
|
---
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct S1
|
||||||
|
{
|
||||||
|
this(ref const S1 s) immutable {
|
||||||
|
}
|
||||||
|
int i;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
const(S1) s1;
|
||||||
|
S1 ms1 = s1;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue