--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed 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
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import end
+
+interface Object
+end
+
+extern class Pointer
+end
+
+##
+
+interface IC
+end
+
+abstract class AC
+end
+
+class CC
+end
+
+enum EnC
+end
+
+extern class ExC
+end
+
+##
+
+interface SubI
+ super IC
+ #alt1# super AC
+ #alt2# super CC
+ #alt3# super EnC
+ #alt4# super ExC
+end
+
+abstract class SubA
+ super IC
+ super AC
+ super CC
+ #alt5# super EnC
+ #alt6# super ExC
+end
+
+class SubC
+ super IC
+ super AC
+ super CC
+ #alt7# super EnC
+ #alt8# super ExC
+end
+
+enum SubEn
+ super IC
+ #alt9# super AC
+ #alt10# super CC
+ #alt11# super EnC
+ #alt12# super ExC
+end
+
+extern class SubEx
+ super IC
+ #alt13# super AC
+ #alt14# super CC
+ #alt15# super EnC
+ super ExC
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed 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
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import base_error_class_kind
+
+interface IC2
+end
+
+abstract class AC2
+end
+
+class CC2
+end
+
+enum EnC2
+end
+
+extern class ExC2
+end
+
+redef class SubI
+ super IC2
+ #alt1# super AC2
+ #alt2# super CC2
+ #alt3# super EnC2
+ #alt4# super ExC2
+end
+
+redef class SubA
+ super IC2
+ super AC2
+ super CC2
+ #alt5# super EnC2
+ #alt6# super ExC2
+end
+
+redef class SubC
+ super IC2
+ super AC2
+ super CC2
+ #alt7# super EnC2
+ #alt8# super ExC2
+end
+
+redef class SubEn
+ super IC2
+ #alt9# super AC2
+ #alt10# super CC2
+ #alt11# super EnC2
+ #alt12# super ExC2
+end
+
+redef class SubEx
+ super IC2
+ #alt13# super AC2
+ #alt14# super CC2
+ #alt15# super EnC2
+ super ExC2
+end
--- /dev/null
+alt/base_error_class_kind2_alt1.nit:34,8--10: Error: interface SubI cannot specialize abstract class AC2
--- /dev/null
+alt/base_error_class_kind2_alt10.nit:59,8--10: Error: enum SubEn cannot specialize class CC2
--- /dev/null
+alt/base_error_class_kind2_alt11.nit:60,8--11: Error: enum SubEn cannot specialize enum EnC2
--- /dev/null
+alt/base_error_class_kind2_alt12.nit:61,8--11: Error: enum SubEn cannot specialize extern class ExC2
--- /dev/null
+alt/base_error_class_kind2_alt13.nit:66,8--10: Error: extern class SubEx cannot specialize abstract class AC2
--- /dev/null
+alt/base_error_class_kind2_alt14.nit:67,8--10: Error: extern class SubEx cannot specialize class CC2
--- /dev/null
+alt/base_error_class_kind2_alt15.nit:68,8--11: Error: extern class SubEx cannot specialize enum EnC2
--- /dev/null
+alt/base_error_class_kind2_alt2.nit:35,8--10: Error: interface SubI cannot specialize class CC2
--- /dev/null
+alt/base_error_class_kind2_alt3.nit:36,8--11: Error: interface SubI cannot specialize enum EnC2
--- /dev/null
+alt/base_error_class_kind2_alt4.nit:37,8--11: Error: interface SubI cannot specialize extern class ExC2
--- /dev/null
+alt/base_error_class_kind2_alt5.nit:44,8--11: Error: abstract class SubA cannot specialize enum EnC2
--- /dev/null
+alt/base_error_class_kind2_alt6.nit:45,8--11: Error: abstract class SubA cannot specialize extern class ExC2
--- /dev/null
+alt/base_error_class_kind2_alt7.nit:52,8--11: Error: class SubC cannot specialize enum EnC2
--- /dev/null
+alt/base_error_class_kind2_alt8.nit:53,8--11: Error: class SubC cannot specialize extern class ExC2
--- /dev/null
+alt/base_error_class_kind2_alt9.nit:58,8--10: Error: enum SubEn cannot specialize abstract class AC2
--- /dev/null
+alt/base_error_class_kind_alt1.nit:44,8--9: Error: interface SubI cannot specialize abstract class AC
--- /dev/null
+alt/base_error_class_kind_alt10.nit:69,8--9: Error: enum SubEn cannot specialize class CC
--- /dev/null
+alt/base_error_class_kind_alt11.nit:70,8--10: Error: enum SubEn cannot specialize enum EnC
--- /dev/null
+alt/base_error_class_kind_alt12.nit:71,8--10: Error: enum SubEn cannot specialize extern class ExC
--- /dev/null
+alt/base_error_class_kind_alt13.nit:76,8--9: Error: extern class SubEx cannot specialize abstract class AC
--- /dev/null
+alt/base_error_class_kind_alt14.nit:77,8--9: Error: extern class SubEx cannot specialize class CC
--- /dev/null
+alt/base_error_class_kind_alt15.nit:78,8--10: Error: extern class SubEx cannot specialize enum EnC
--- /dev/null
+alt/base_error_class_kind_alt2.nit:45,8--9: Error: interface SubI cannot specialize class CC
--- /dev/null
+alt/base_error_class_kind_alt3.nit:46,8--10: Error: interface SubI cannot specialize enum EnC
--- /dev/null
+alt/base_error_class_kind_alt4.nit:47,8--10: Error: interface SubI cannot specialize extern class ExC
--- /dev/null
+alt/base_error_class_kind_alt5.nit:54,8--10: Error: abstract class SubA cannot specialize enum EnC
--- /dev/null
+alt/base_error_class_kind_alt6.nit:55,8--10: Error: abstract class SubA cannot specialize extern class ExC
--- /dev/null
+alt/base_error_class_kind_alt7.nit:62,8--10: Error: class SubC cannot specialize enum EnC
--- /dev/null
+alt/base_error_class_kind_alt8.nit:63,8--10: Error: class SubC cannot specialize extern class ExC
--- /dev/null
+alt/base_error_class_kind_alt9.nit:68,8--9: Error: enum SubEn cannot specialize abstract class AC