-
-
Notifications
You must be signed in to change notification settings - Fork 52
Closed
Description
v2.096.0+ -preview=shortenedMethods don't work
tried with "d.servedReleaseChannel": "stable" and "d.servedReleaseChannel": "nightly"
Code-d version: v0.22.0
DCD version: v0.13.4
Serve-d version: serve-d v0.7.0-beta.6 with workspace-d v3.5.0
Example code (taken from dlang/dmd/test/compilable/shortened_methods.d):
module Source.UEFI.Protocols.Test;
class A {
int _x = 34;
// short syntax works in all contexts
@property x() => _x;
@property x(int v) => _x = v;
// including with contracts
@property y() in(true) => _x;
// or other auto returns
auto foo() @safe => assert(0);
// or normal method defintions
bool isNull() => this is null;
}
class B : A{
// short syntax also overrides the same as long syntax
override bool isNull() => this !is null;
}
static assert((new A).x == 34);
string test() => "hello"; // works at any scope
static assert(test() == "hello"); // works normally
static assert(is(typeof(&test) == string function())); // same normal type
void func() {
int a;
int nested() => a; // and at nested scopes too
}Test.d(6:19)[error]: Expected `{` instead of `=>`
Test.d(7:24)[error]: Expected `{` instead of `=>`
Test.d(10:28)[error]: Expected `{` instead of `=>`
Test.d(13:22)[error]: Expected `{` instead of `=>`
Test.d(13:34)[warn]: Empty declaration
Test.d(16:19)[error]: Expected `{` instead of `=>`
Test.d(17:1)[error]: invalid variable declaration or function declaration
Test.d(21:28)[error]: Expected `{` instead of `=>`
Test.d(22:1)[error]: invalid variable declaration or function declaration
Test.d(26:15)[error]: Expected `{` instead of `=>`
Test.d(28:1)[error]: invalid variable declaration or function declaration
Test.d(33:9)[error]: Primary expression expected
Test.d(33:18)[error]: Primary expression expectedserve-d Verbose output
[Trace - 2:42:17 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {
"diagnostics": [
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 60,
"line": 36
},
"start": {
"character": 50,
"line": 36
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 102,
"line": 36
},
"start": {
"character": 101,
"line": 36
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 102,
"line": 36
},
"start": {
"character": 101,
"line": 36
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 60,
"line": 37
},
"start": {
"character": 50,
"line": 37
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 102,
"line": 37
},
"start": {
"character": 99,
"line": 37
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "no identifier for declarator",
"range": {
"end": {
"character": 107,
"line": 37
},
"start": {
"character": 106,
"line": 37
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 108,
"line": 37
},
"start": {
"character": 107,
"line": 37
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 58,
"line": 38
},
"start": {
"character": 48,
"line": 38
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 98,
"line": 38
},
"start": {
"character": 95,
"line": 38
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "no identifier for declarator",
"range": {
"end": {
"character": 103,
"line": 38
},
"start": {
"character": 102,
"line": 38
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 104,
"line": 38
},
"start": {
"character": 103,
"line": 38
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 81,
"line": 39
},
"start": {
"character": 71,
"line": 39
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 126,
"line": 39
},
"start": {
"character": 125,
"line": 39
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 126,
"line": 39
},
"start": {
"character": 125,
"line": 39
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 48,
"line": 40
},
"start": {
"character": 38,
"line": 40
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 76,
"line": 40
},
"start": {
"character": 75,
"line": 40
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 76,
"line": 40
},
"start": {
"character": 75,
"line": 40
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 58,
"line": 41
},
"start": {
"character": 48,
"line": 41
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 96,
"line": 41
},
"start": {
"character": 95,
"line": 41
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 96,
"line": 41
},
"start": {
"character": 95,
"line": 41
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 41,
"line": 42
},
"start": {
"character": 31,
"line": 42
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 67,
"line": 42
},
"start": {
"character": 66,
"line": 42
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 67,
"line": 42
},
"start": {
"character": 66,
"line": 42
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 72,
"line": 43
},
"start": {
"character": 62,
"line": 43
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 117,
"line": 43
},
"start": {
"character": 116,
"line": 43
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 117,
"line": 43
},
"start": {
"character": 116,
"line": 43
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 54,
"line": 44
},
"start": {
"character": 44,
"line": 44
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 90,
"line": 44
},
"start": {
"character": 89,
"line": 44
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 90,
"line": 44
},
"start": {
"character": 89,
"line": 44
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Module/package name 'UEFI' does not match style guidelines.",
"range": {
"end": {
"character": 11,
"line": 0
},
"start": {
"character": 7,
"line": 0
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Module/package name 'Protocols' does not match style guidelines.",
"range": {
"end": {
"character": 21,
"line": 0
},
"start": {
"character": 12,
"line": 0
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Module/package name 'ConOut' does not match style guidelines.",
"range": {
"end": {
"character": 28,
"line": 0
},
"start": {
"character": 22,
"line": 0
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'Reset_' does not match style guidelines.",
"range": {
"end": {
"character": 26,
"line": 25
},
"start": {
"character": 20,
"line": 25
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'OutputString_' does not match style guidelines.",
"range": {
"end": {
"character": 40,
"line": 26
},
"start": {
"character": 27,
"line": 26
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'TestString_' does not match style guidelines.",
"range": {
"end": {
"character": 36,
"line": 27
},
"start": {
"character": 25,
"line": 27
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'QueryMode_' does not match style guidelines.",
"range": {
"end": {
"character": 34,
"line": 28
},
"start": {
"character": 24,
"line": 28
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'SetMode_' does not match style guidelines.",
"range": {
"end": {
"character": 30,
"line": 29
},
"start": {
"character": 22,
"line": 29
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'SetAttribute_' does not match style guidelines.",
"range": {
"end": {
"character": 40,
"line": 30
},
"start": {
"character": 27,
"line": 30
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'ClearScreen_' does not match style guidelines.",
"range": {
"end": {
"character": 38,
"line": 31
},
"start": {
"character": 26,
"line": 31
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'SetCursorPosition_' does not match style guidelines.",
"range": {
"end": {
"character": 50,
"line": 32
},
"start": {
"character": 32,
"line": 32
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Variable name 'EnableCursor_' does not match style guidelines.",
"range": {
"end": {
"character": 40,
"line": 33
},
"start": {
"character": 27,
"line": 33
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.long_line",
"message": "Line is longer than 120 characters",
"range": {
"end": {
"character": 1000,
"line": 39
},
"start": {
"character": 120,
"line": 39
}
},
"severity": 2,
"source": "DScanner"
}
],
"uri": "file:///Users/visual/Documents/Projects/UEFITest/source/UEFI/Protocols/ConOut.d"
}
[Trace - 2:42:17 PM] Received notification 'textDocument/publishDiagnostics'.
Params: {
"diagnostics": [
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 20,
"line": 5
},
"start": {
"character": 14,
"line": 5
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 25,
"line": 6
},
"start": {
"character": 20,
"line": 6
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 29,
"line": 9
},
"start": {
"character": 21,
"line": 9
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 23,
"line": 12
},
"start": {
"character": 16,
"line": 12
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Empty declaration",
"range": {
"end": {
"character": 34,
"line": 12
},
"start": {
"character": 33,
"line": 12
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 20,
"line": 15
},
"start": {
"character": 9,
"line": 15
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 1,
"line": 16
},
"start": {
"character": 0,
"line": 16
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 29,
"line": 20
},
"start": {
"character": 18,
"line": 20
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 1,
"line": 21
},
"start": {
"character": 0,
"line": 21
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Expected `{` instead of `=>`",
"range": {
"end": {
"character": 25,
"line": 25
},
"start": {
"character": 7,
"line": 25
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "invalid variable declaration or function declaration",
"range": {
"end": {
"character": 6,
"line": 27
},
"start": {
"character": 0,
"line": 27
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Primary expression expected",
"range": {
"end": {
"character": 14,
"line": 32
},
"start": {
"character": 8,
"line": 32
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "",
"message": "Primary expression expected",
"range": {
"end": {
"character": 19,
"line": 32
},
"start": {
"character": 17,
"line": 32
}
},
"severity": 1,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Module/package name 'Source' does not match style guidelines.",
"range": {
"end": {
"character": 13,
"line": 0
},
"start": {
"character": 7,
"line": 0
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Module/package name 'UEFI' does not match style guidelines.",
"range": {
"end": {
"character": 18,
"line": 0
},
"start": {
"character": 14,
"line": 0
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Module/package name 'Protocols' does not match style guidelines.",
"range": {
"end": {
"character": 28,
"line": 0
},
"start": {
"character": 19,
"line": 0
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.style.phobos_naming_convention",
"message": "Module/package name 'Test' does not match style guidelines.",
"range": {
"end": {
"character": 33,
"line": 0
},
"start": {
"character": 29,
"line": 0
}
},
"severity": 2,
"source": "DScanner"
},
{
"code": "dscanner.suspicious.unused_variable",
"message": "Variable a is never used.",
"range": {
"end": {
"character": 9,
"line": 31
},
"start": {
"character": 8,
"line": 31
}
},
"severity": 4,
"source": "DScanner",
"tags": [
1
]
}
],
"uri": "file:///Users/visual/Documents/Projects/UEFITest/Source/UEFI/Protocols/Test.d"
}Reactions are currently unavailable