diff options
Diffstat (limited to 'src/bin/eolian_mono/eolian/mono/name_helpers.hh')
-rw-r--r-- | src/bin/eolian_mono/eolian/mono/name_helpers.hh | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/bin/eolian_mono/eolian/mono/name_helpers.hh b/src/bin/eolian_mono/eolian/mono/name_helpers.hh index ccbbfce..5fc1f18 100644 --- a/src/bin/eolian_mono/eolian/mono/name_helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/name_helpers.hh | |||
@@ -364,13 +364,27 @@ inline std::string klass_inherit_name(T const& klass) | |||
364 | template<typename T> | 364 | template<typename T> |
365 | inline std::string klass_native_inherit_name(T const& klass) | 365 | inline std::string klass_native_inherit_name(T const& klass) |
366 | { | 366 | { |
367 | return klass_concrete_name(klass) + "NativeInherit"; | 367 | switch(klass.type) |
368 | { | ||
369 | case attributes::class_type::abstract_: | ||
370 | case attributes::class_type::regular: | ||
371 | return klass_concrete_name(klass) + "NativeInherit"; | ||
372 | default: | ||
373 | return klass_interface_name(klass) + "NativeInherit"; | ||
374 | } | ||
368 | } | 375 | } |
369 | 376 | ||
370 | template<typename T> | 377 | template<typename T> |
371 | inline std::string klass_full_native_inherit_name(T const& klass) | 378 | inline std::string klass_full_native_inherit_name(T const& klass) |
372 | { | 379 | { |
373 | return klass_full_concrete_name(klass) + "NativeInherit"; | 380 | switch(klass.type) |
381 | { | ||
382 | case attributes::class_type::abstract_: | ||
383 | case attributes::class_type::regular: | ||
384 | return klass_full_concrete_name(klass) + "NativeInherit"; | ||
385 | default: | ||
386 | return klass_full_interface_name(klass) + "NativeInherit"; | ||
387 | } | ||
374 | } | 388 | } |
375 | 389 | ||
376 | template<typename T> | 390 | template<typename T> |