summaryrefslogtreecommitdiff
path: root/src/lib/eolian_cxx
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2017-09-25 21:57:25 -0300
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2017-09-25 21:57:25 -0300
commitbb887f9869c3dd9eca72c8e65f335d148f9dbdd3 (patch)
tree7b4e33f6e249d59963cd58a81f9c78b82f653c7f /src/lib/eolian_cxx
parent39318789a88cf5e3930c9ed6e9d437aa374ce7ad (diff)
eolian-cxx: Fix compilation errors with new any_value_ptr and mstring types
Diffstat (limited to 'src/lib/eolian_cxx')
-rw-r--r--src/lib/eolian_cxx/grammar/type_impl.hpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/lib/eolian_cxx/grammar/type_impl.hpp b/src/lib/eolian_cxx/grammar/type_impl.hpp
index bb61980dd9..fb78c1e51b 100644
--- a/src/lib/eolian_cxx/grammar/type_impl.hpp
+++ b/src/lib/eolian_cxx/grammar/type_impl.hpp
@@ -110,6 +110,24 @@ struct visitor_generate
110 r.base_qualifier.qualifier ^= qualifier_info::is_ref; 110 r.base_qualifier.qualifier ^= qualifier_info::is_ref;
111 return replace_base_type(r, " ::efl::eina::string_view"); 111 return replace_base_type(r, " ::efl::eina::string_view");
112 }} 112 }}
113 , {"mstring", false, nullptr, nullptr, [&]
114 {
115 regular_type_def r = regular;
116 r.base_qualifier.qualifier |= qualifier_info::is_ref;
117 // r.base_qualifier.qualifier ^= qualifier_info::is_const;
118 if(is_out || is_return)
119 return replace_base_type(r, " ::std::string");
120 return replace_base_type(r, " ::efl::eina::string_view");
121 }}
122 , {"mstring", true, nullptr, nullptr, [&]
123 {
124 regular_type_def r = regular;
125 r.base_qualifier.qualifier ^= qualifier_info::is_ref;
126 // r.base_qualifier.qualifier ^= qualifier_info::is_const;
127 if(is_out || is_return)
128 return replace_base_type(r, " ::std::string");
129 return replace_base_type(r, " ::efl::eina::string_view");
130 }}
113 , {"stringshare", nullptr, nullptr, nullptr, [&] 131 , {"stringshare", nullptr, nullptr, nullptr, [&]
114 { 132 {
115 regular_type_def r = regular; 133 regular_type_def r = regular;
@@ -124,6 +142,13 @@ struct visitor_generate
124 , {"any_value", false, nullptr, nullptr, [&] 142 , {"any_value", false, nullptr, nullptr, [&]
125 { return regular_type_def{" ::efl::eina::value_view", regular.base_qualifier, {}}; 143 { return regular_type_def{" ::efl::eina::value_view", regular.base_qualifier, {}};
126 }} 144 }}
145 , {"any_value_ptr", true, nullptr, nullptr, [&]
146 {
147 return regular_type_def{" ::efl::eina::value", regular.base_qualifier ^ qualifier_info::is_ref, {}};
148 }}
149 , {"any_value_ptr", false, nullptr, nullptr, [&]
150 { return regular_type_def{" ::efl::eina::value_view", regular.base_qualifier ^ qualifier_info::is_ref, {}};
151 }}
127 }; 152 };
128 if(regular.base_type == "void_ptr") 153 if(regular.base_type == "void_ptr")
129 { 154 {