diff --git a/compiler/src/dmd/dsymbolsem.d b/compiler/src/dmd/dsymbolsem.d index 887202ebbc..ec0b97f921 100644 --- a/compiler/src/dmd/dsymbolsem.d +++ b/compiler/src/dmd/dsymbolsem.d @@ -2310,6 +2310,7 @@ private extern(C++) final class DsymbolSemanticVisitor : Visitor auto inneruda = em.userAttribDecl.userAttribDecl; em.userAttribDecl.setScope(sc); em.userAttribDecl.userAttribDecl = inneruda; + em.userAttribDecl.dsymbolSemantic(sc); } // The first enum member is special diff --git a/compiler/test/fail_compilation/failattr.d b/compiler/test/fail_compilation/failattr.d index c7f0f31d06..012305af95 100644 --- a/compiler/test/fail_compilation/failattr.d +++ b/compiler/test/fail_compilation/failattr.d @@ -3,14 +3,17 @@ /* TEST_OUTPUT: --- -fail_compilation/failattr.d(16): Error: variable `failattr.C2901.v1` cannot be `synchronized` -fail_compilation/failattr.d(17): Error: variable `failattr.C2901.v2` cannot be `override` -fail_compilation/failattr.d(18): Error: variable `failattr.C2901.v3` cannot be `abstract` -fail_compilation/failattr.d(19): Error: variable `failattr.C2901.v4` cannot be `final`, perhaps you meant `const`? -fail_compilation/failattr.d(31): Error: variable `failattr.C2901.v13` cannot be `final abstract synchronized override` -fail_compilation/failattr.d(33): Error: variable `failattr.C2901.v14` cannot be `final`, perhaps you meant `const`? +fail_compilation/failattr.d(103): Error: variable `failattr.C2901.v1` cannot be `synchronized` +fail_compilation/failattr.d(104): Error: variable `failattr.C2901.v2` cannot be `override` +fail_compilation/failattr.d(105): Error: variable `failattr.C2901.v3` cannot be `abstract` +fail_compilation/failattr.d(106): Error: variable `failattr.C2901.v4` cannot be `final`, perhaps you meant `const`? +fail_compilation/failattr.d(118): Error: variable `failattr.C2901.v13` cannot be `final abstract synchronized override` +fail_compilation/failattr.d(120): Error: variable `failattr.C2901.v14` cannot be `final`, perhaps you meant `const`? +fail_compilation/failattr.d(123): Error: undefined identifier `ERROR` --- */ +#line 100 + class C2901 { synchronized int v1; // error @@ -32,3 +35,5 @@ class C2901 static final int v14; // error, even if static is applied at the same time } + +enum B23122 { @ERROR e }