#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This file incorporates work covered by the following license notice:
#
#   Licensed to the Apache Software Foundation (ASF) under one or more
#   contributor license agreements. See the NOTICE file distributed
#   with this work for additional information regarding copyright
#   ownership. The ASF licenses this file to you under the Apache
#   License, Version 2.0 (the "License"); you may not use this file
#   except in compliance with the License. You may obtain a copy of
#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
#

EXPECT FAILURE "interfaceinheritance.tests 1":
interface Base {};
interface Derived {
    interface Base;
    interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 2":
interface Base {};
interface Derived {
    interface Base;
    [optional] interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 3":
interface Base {};
interface Derived {
    [optional] interface Base;
    interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 4":
interface Base {};
interface Derived {
    [optional] interface Base;
    [optional] interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 5":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    interface Base1;
    interface Base2;
};


EXPECT FAILURE "interfaceinheritance.tests 6":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    interface Base2;
    interface Base1;
};


EXPECT FAILURE "interfaceinheritance.tests 7":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    [optional] interface Base1;
    interface Base2;
};


EXPECT FAILURE "interfaceinheritance.tests 8":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    interface Base2;
    [optional] interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 9":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    interface Base1;
    [optional] interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 10":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    [optional] interface Base2;
    interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 11":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    [optional] interface Base1;
    [optional] interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 12":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    [optional] interface Base2;
    [optional] interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 13":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    interface Base1;
    interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 14":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    interface Base2;
    interface Base1;
};


EXPECT FAILURE "interfaceinheritance.tests 15":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    [optional] interface Base1;
    interface Base2;
};


EXPECT FAILURE "interfaceinheritance.tests 16":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    interface Base2;
    [optional] interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 17":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    interface Base1;
    [optional] interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 18":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    [optional] interface Base2;
    interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 19":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    [optional] interface Base1;
    [optional] interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 20":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    [optional] interface Base2;
    [optional] interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 21":
interface Base1 {};
interface Base2: Base1 {};
interface Base3: Base1 {};
interface Derived {
    interface Base2;
    interface Base3;
};


EXPECT SUCCESS "interfaceinheritance.tests 22":
interface Base1 {};
interface Base2: Base1 {};
interface Base3: Base1 {};
interface Derived {
    [optional] interface Base2;
    interface Base3;
};


EXPECT SUCCESS "interfaceinheritance.tests 23":
interface Base1 {};
interface Base2: Base1 {};
interface Base3: Base1 {};
interface Derived {
    interface Base2;
    [optional] interface Base3;
};


EXPECT SUCCESS "interfaceinheritance.tests 24":
interface Base1 {};
interface Base2: Base1 {};
interface Base3: Base1 {};
interface Derived {
    [optional] interface Base2;
    [optional] interface Base3;
};


EXPECT SUCCESS "interfaceinheritance.tests 25":
interface Base {};
interface Derived {
    [optional] interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 26":
interface Base;
interface Derived {
    interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 27":
interface Base;
interface Derived {
    [optional] interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 28":
interface Base {};
typedef Base Hidden;
interface Derived {
    interface Base;
    interface Hidden;
};


EXPECT FAILURE "interfaceinheritance.tests 29":
interface Base {};
typedef Base Hidden;
interface Derived {
    interface Hidden;
    interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 30":
interface Base {};
interface Derived {
    interface Base;
    [optional] interface com::sun::star::uno::XInterface;
};