summaryrefslogtreecommitdiff
path: root/unoidl/source/sourceprovider-parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'unoidl/source/sourceprovider-parser.y')
-rw-r--r--unoidl/source/sourceprovider-parser.y9
1 files changed, 8 insertions, 1 deletions
diff --git a/unoidl/source/sourceprovider-parser.y b/unoidl/source/sourceprovider-parser.y
index 9d1c97ac4239..7b9e224544fc 100644
--- a/unoidl/source/sourceprovider-parser.y
+++ b/unoidl/source/sourceprovider-parser.y
@@ -1288,10 +1288,17 @@ structMember:
default:
break;
}
- if (nameHasSameIdentifierAs(data->currentName, id)) {
+ if (t.getName() == data->currentName) { // no need to worry about typedefs
error(
@2, yyscanner,
("struct/exception type " + data->currentName + " direct member "
+ + id + " has same type as the type itself"));
+ YYERROR;
+ }
+ if (nameHasSameIdentifierAs(data->currentName, id)) {
+ error(
+ @3, yyscanner,
+ ("struct/exception type " + data->currentName + " direct member "
+ id + " has same unqualified identifer as the type itself"));
YYERROR;
}