diff options
-rw-r--r-- | unoidl/source/sourceprovider-parser.y | 9 |
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; } |