Skip to content

Fix/explicit variability#1256

Open
MoulardM wants to merge 8 commits intonextfrom
fix/explicit_variability
Open

Fix/explicit variability#1256
MoulardM wants to merge 8 commits intonextfrom
fix/explicit_variability

Conversation

@MoulardM
Copy link
Copy Markdown

No description provided.

@MoulardM MoulardM requested a review from panquez March 30, 2026 14:55
@github-actions github-actions bot changed the base branch from master to next March 30, 2026 14:55
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy (v20.1.8) reports: 73 concern(s)
  • include/geode/basic/mapping.hpp:37:11: warning: [cppcoreguidelines-special-member-functions]

    class 'MappingBase' defines a copy constructor, a copy assignment operator, a move constructor and a move assignment operator but does not define a destructor

       37 |     class MappingBase
          |           ^
  • include/geode/basic/mapping.hpp:64:62: warning: [readability-identifier-length]

    parameter name 'in' is too short, expected at least 3 characters

       64 |         [[nodiscard]] const Storage< T2 >& in2out( const T1& in ) const
          |                                                              ^
  • include/geode/basic/mapping.hpp:125:11: warning: [cppcoreguidelines-special-member-functions]

    class 'BijectiveMapping' defines a copy constructor, a copy assignment operator, a move constructor and a move assignment operator but does not define a destructor

      125 |     class BijectiveMapping : public MappingBase< T1, T2, OneValueStorage >
          |           ^
  • include/geode/basic/mapping.hpp:134:29: warning: [readability-identifier-length]

    parameter name 'in' is too short, expected at least 3 characters

      134 |         void map( const T1& in, const T2& out )
          |                             ^
  • include/geode/basic/mapping.hpp:152:34: warning: [readability-identifier-length]

    parameter name 'in' is too short, expected at least 3 characters

      152 |         void erase_in( const T1& in )
          |                                  ^
  • include/geode/basic/mapping.hpp:187:11: warning: [cppcoreguidelines-special-member-functions]

    class 'GenericMapping' defines a copy constructor, a copy assignment operator, a move constructor and a move assignment operator but does not define a destructor

      187 |     class GenericMapping : public MappingBase< T1, T2, MultipleValueStorage >
          |           ^
  • include/geode/basic/mapping.hpp:196:29: warning: [readability-identifier-length]

    parameter name 'in' is too short, expected at least 3 characters

      196 |         void map( const T1& in, const T2& out )
          |                             ^
  • include/geode/basic/mapping.hpp:209:31: warning: [readability-identifier-length]

    parameter name 'in' is too short, expected at least 3 characters

      209 |         void unmap( const T1& in, const T2& out )
          |                               ^
  • include/geode/basic/mapping.hpp:239:34: warning: [readability-identifier-length]

    parameter name 'in' is too short, expected at least 3 characters

      239 |         void erase_in( const T1& in )
          |                                  ^
  • include/geode/basic/mapping.hpp:264:30: warning: [readability-identifier-length]

    variable name 'in' is too short, expected at least 3 characters

      264 |             for( const auto& in : this->out2in( out ) )
          |                              ^
  • include/geode/model/mixin/core/component_type.hpp:52:57: warning: [readability-identifier-length]

    parameter name 'id' is too short, expected at least 3 characters

       52 |         ComponentID( ComponentType component_type, uuid id )
          |                                                         ^
  • include/geode/model/mixin/core/component_type.hpp:53:58: warning: [hicpp-move-const-arg]

    std::move of the variable 'id' of the trivially-copyable type 'uuid' has no effect; remove std::move()

       53 |             : type_( std::move( component_type ) ), id_( std::move( id ) )
          |                                                          ^~~~~~~~~~    ~
  • include/geode/model/mixin/core/component_type.hpp:102:18: warning: [readability-identifier-naming]

    invalid case style for global function 'AbslHashValue'

      102 |         friend H AbslHashValue( H h, const ComponentID& value )
          |                  ^~~~~~~~~~~~~
          |                  absl_hash_value
  • include/geode/model/mixin/core/component_type.hpp:102:35: warning: [readability-identifier-length]

    parameter name 'h' is too short, expected at least 3 characters

      102 |         friend H AbslHashValue( H h, const ComponentID& value )
          |                                   ^
  • include/geode/model/mixin/core/component_type.hpp:114:43: warning: [readability-identifier-length]

    parameter name 'a' is too short, expected at least 3 characters

      114 |                            { []( Archive& a, ComponentID& component_id ) {
          |                                           ^
  • include/geode/model/mixin/core/component_type.hpp:138:54: warning: [readability-identifier-length]

    parameter name 'id' is too short, expected at least 3 characters

      138 |         size_t operator()( const geode::ComponentID& id ) const;
          |                                                      ^
  • include/geode/model/mixin/core/vertex_identifier.hpp:49:32: warning: [cppcoreguidelines-special-member-functions]

    class 'ComponentMeshVertex' defines a destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       49 |     struct opengeode_model_api ComponentMeshVertex
          |                                ^
  • include/geode/model/mixin/core/vertex_identifier.hpp:71:18: warning: [readability-identifier-naming]

    invalid case style for global function 'AbslHashValue'

       71 |         friend H AbslHashValue( H h, const ComponentMeshVertex& value )
          |                  ^~~~~~~~~~~~~
          |                  absl_hash_value
  • include/geode/model/mixin/core/vertex_identifier.hpp:71:35: warning: [readability-identifier-length]

    parameter name 'h' is too short, expected at least 3 characters

       71 |         friend H AbslHashValue( H h, const ComponentMeshVertex& value )
          |                                   ^
  • include/geode/model/mixin/core/vertex_identifier.hpp:90:31: warning: [cppcoreguidelines-special-member-functions]

    class 'VertexIdentifier' defines a destructor, a move constructor and a move assignment operator but does not define a copy constructor or a copy assignment operator

       90 |     class opengeode_model_api VertexIdentifier
          |                               ^
  • include/geode/model/mixin/core/vertex_identifier.hpp:162:49: warning: [readability-identifier-length]

    parameter name 'nb' is too short, expected at least 3 characters

      162 |         index_t create_unique_vertices( index_t nb, BuilderKey );
          |                                                 ^
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:140:9: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'cell_mesh_vertices'

      140 |         std::array< geode::index_t, 4 > cell_mesh_vertices;
          |         ^                                                 
          |                                                           {}
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:147:9: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'created_triangles'

      147 |         std::array< geode::index_t, 4 > created_triangles;
          |         ^                                                
          |                                                          {}
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:165:9: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'cell_mesh_vertices'

      165 |         std::array< geode::index_t, 4 > cell_mesh_vertices;
          |         ^                                                 
          |                                                           {}
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:172:9: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'created_triangles'

      172 |         std::array< geode::index_t, 2 > created_triangles;
          |         ^                                                
          |                                                          {}
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:190:13: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'cell_mesh_vertices'

      190 |             std::array< geode::index_t, 4 > cell_mesh_vertices;
          |             ^                                                 
          |                                                               {}
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:212:13: warning: [bugprone-implicit-widening-of-multiplication-result]

    performing an implicit widening conversion to type 'size_type' (aka 'unsigned long') of a multiplication performed in type 'index_t' (aka 'unsigned int')

      212 |             2 * grid.nb_cells() + 2 * cells_to_densify.size() );
          |             ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:212:13: note: make conversion explicit to silence this warning
       24 |             2 * grid.nb_cells() + 2 * cells_to_densify.size() );
          |             ^~~~~~~~~~~~~~~~~~~
          |             static_cast<size_type>( )
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:212:13: note: perform multiplication in a wider type
      212 |             2 * grid.nb_cells() + 2 * cells_to_densify.size() );
          |             ^
          |             static_cast<size_type>( )
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:212:13: warning: [readability-math-missing-parentheses]

    '*' has higher precedence than '+'; add parentheses to explicitly specify the order of operations

      212 |             2 * grid.nb_cells() + 2 * cells_to_densify.size() );
          |             ^~~~~~~~~~~~~~~~~~~
          |             (                  )
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:212:35: warning: [readability-math-missing-parentheses]

    '*' has higher precedence than '+'; add parentheses to explicitly specify the order of operations

      212 |             2 * grid.nb_cells() + 2 * cells_to_densify.size() );
          |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                   (                          )
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:280:36: warning: [cppcoreguidelines-avoid-magic-numbers]

    0.25 is a magic number; consider replacing it with a named constant

      280 |                 lambdas.push_back( 0.25 );
          |                                    ^
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:281:65: warning: [cppcoreguidelines-avoid-magic-numbers]

    0.25 is a magic number; consider replacing it with a named constant

      281 |                 position += grid.grid_point( vertex_indices ) * 0.25;
          |                                                                 ^
  • src/geode/mesh/helpers/convert_surface_mesh.cpp:389:10: warning: [readability-function-cognitive-complexity]

    function 'triangulate_surface_mesh' has cognitive complexity of 32 (threshold 10)

      389 |     void triangulate_surface_mesh( const SurfaceMesh< dimension >& surface,
          |          ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:393:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      393 |         for( const auto p : Range{ surface.nb_polygons() } )
          |         ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:397:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      397 |             if( nb_vertices > 3 )
          |             ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:402:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      402 |                 for( const auto e : LRange{ nb_vertices } )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:404:21: note: +4, including nesting penalty of 3, nesting level increased to 4
      404 |                     if( const auto adj =
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:409:63: note: +5, including nesting penalty of 4, nesting level increased to 5
      409 |                                 vertices[e + 1 == nb_vertices ? 0 : e + 1] },
          |                                                               ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:416:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      416 |                 for( const auto trgl : LIndices{ new_polygons } )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:422:21: note: +4, including nesting penalty of 3, nesting level increased to 4
      422 |                     for( const auto e : LRange{ 3 } )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:425:62: note: +5, including nesting penalty of 4, nesting level increased to 5
      425 |                         const auto vertex1 = triangle[e == 2 ? 0 : e + 1];
          |                                                              ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/convert_surface_mesh.cpp:428:25: note: +5, including nesting penalty of 4, nesting level increased to 5
      428 |                         if( adj_it == adjacents.end() )
          |                         ^
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:38:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       38 | namespace geode
          | ^~~~~~~~~~~~~~~
       39 | {
          | ~
       40 |     namespace detail
          |     ~~~~~~~~~~~~~~~~
          |     namespace geode::detail
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:50:23: warning: [readability-function-cognitive-complexity]

    function 'remove_adjacencies_along_facets' has cognitive complexity of 11 (threshold 10)

       50 |             SolidInfo remove_adjacencies_along_facets(
          |                       ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:54:17: note: +1, including nesting penalty of 0, nesting level increased to 1
       54 |                 for( const auto& solid_facet : facets_list )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:56:21: note: +2, including nesting penalty of 1, nesting level increased to 2
       56 |                     if( const auto adj =
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:62:21: note: +2, including nesting penalty of 1, nesting level increased to 2
       62 |                     for( const auto vertex_id :
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:68:17: note: +1, including nesting penalty of 0, nesting level increased to 1
       68 |                 for( const auto polyhedron_id : Range{ solid_.nb_polyhedra() } )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:70:21: note: +2, including nesting penalty of 1, nesting level increased to 2
       70 |                     for( const auto local_vertex_id : LRange{
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:77:25: note: +3, including nesting penalty of 2, nesting level increased to 3
       77 |                         if( info.vertices_to_check[vertex_id] )
          |                         ^
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:139:29: warning: [readability-function-cognitive-complexity]

    function 'duplicate_points' has cognitive complexity of 11 (threshold 10)

      139 |             ElementsMapping duplicate_points( const SolidInfo& solid_info )
          |                             ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:142:17: note: +1, including nesting penalty of 0, nesting level increased to 1
      142 |                 for( const auto vertex_id : Range{ solid_.nb_vertices() } )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:145:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      145 |                     if( !solid_info.vertices_to_check[vertex_id] )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:156:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      156 |                     OPENGEODE_ASSERT(
          |                     ^
    /__w/OpenGeode/OpenGeode/include/geode/basic/assert.hpp:107:9: note: expanded from macro 'OPENGEODE_ASSERT'
      107 |         if( ABSL_PREDICT_FALSE( !( condition ) ) )                             \
          |         ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:156:21: note: +1
      156 |                     OPENGEODE_ASSERT(
          |                     ^
    /__w/OpenGeode/OpenGeode/include/geode/basic/assert.hpp:107:13: note: expanded from macro 'OPENGEODE_ASSERT'
      107 |         if( ABSL_PREDICT_FALSE( !( condition ) ) )                             \
          |             ^
    /__w/OpenGeode/OpenGeode/build/third_party/abseil/install/include/absl/base/optimization.h:189:55: note: expanded from macro 'ABSL_PREDICT_FALSE'
      189 | #define ABSL_PREDICT_FALSE(x) (__builtin_expect(false || (x), false))
          |                                                       ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:161:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      161 |                     while( nb_polyhedra_around != all_polyhedra_around.size() )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:163:25: note: +3, including nesting penalty of 2, nesting level increased to 3
      163 |                         for( const auto& polyhedron : polyhedra_around )
          |                         ^
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:180:17: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'process_vertex' of similar type ('const PolyhedraAroundVertex &') are easily swapped by mistake

      180 |                 const PolyhedraAroundVertex& processed_polyhedra,
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      181 |                 const PolyhedraAroundVertex& all_polyhedra_around )
          |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:180:46: note: the first parameter in the range is 'processed_polyhedra'
      180 |                 const PolyhedraAroundVertex& processed_polyhedra,
          |                                              ^~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:181:46: note: the last parameter in the range is 'all_polyhedra_around'
      181 |                 const PolyhedraAroundVertex& all_polyhedra_around )
          |                                              ^~~~~~~~~~~~~~~~~~~~
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:208:13: warning: [modernize-use-nodiscard]

    function 'process_solid_facets' should be marked [[nodiscard]]

      208 |             ElementsMapping process_solid_facets( index_t nb_initial_facets,
          |             ^
          |             [[nodiscard]] 
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:241:25: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      241 |                         solid_facets.facet_from_vertices( facet_vertices )
          |                         ^
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:249:13: warning: [modernize-use-nodiscard]

    function 'final_facets_mapping' should be marked [[nodiscard]]

      249 |             ElementsMapping final_facets_mapping(
          |             ^
          |             [[nodiscard]] 
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:297:25: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      297 |                         solid_edges.edge_from_vertices( edge_vertices ).value(),
          |                         ^
  • src/geode/mesh/helpers/detail/split_along_solid_facets.cpp:304:13: warning: [modernize-use-nodiscard]

    function 'final_edges_mapping' should be marked [[nodiscard]]

      304 |             ElementsMapping final_edges_mapping(
          |             ^
          |             [[nodiscard]] 
  • src/geode/model/mixin/core/vertex_identifier.cpp:96:32: warning: [readability-identifier-length]

    parameter name 'a' is too short, expected at least 3 characters

       96 |                 { []( Archive& a, ComponentMeshVertex& component_mesh_vertex ) {
          |                                ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:104:27: warning: [readability-identifier-naming]

    invalid case style for private member 'unique_vertices_name'

      104 |         const std::string unique_vertices_name = "unique vertices";
          |                           ^~~~~~~~~~~~~~~~~~~~
          |                           unique_vertices_name_
  • src/geode/model/mixin/core/vertex_identifier.cpp:117:9: warning: [modernize-use-nodiscard]

    function 'nb_unique_vertices' should be marked [[nodiscard]]

      117 |         index_t nb_unique_vertices() const
          |         ^
          |         [[nodiscard]] 
  • src/geode/model/mixin/core/vertex_identifier.cpp:122:9: warning: [modernize-use-nodiscard]

    function 'is_unique_vertex_isolated' should be marked [[nodiscard]]

      122 |         bool is_unique_vertex_isolated( index_t unique_vertex_id ) const
          |         ^
          |         [[nodiscard]] 
  • src/geode/model/mixin/core/vertex_identifier.cpp:127:9: warning: [modernize-use-nodiscard]

    function 'component_mesh_vertices' should be marked [[nodiscard]]

      127 |         const std::vector< ComponentMeshVertex >& component_mesh_vertices(
          |         ^
          |         [[nodiscard]] 
  • src/geode/model/mixin/core/vertex_identifier.cpp:137:9: warning: [modernize-use-nodiscard]

    function 'unique_vertex' should be marked [[nodiscard]]

      137 |         index_t unique_vertex(
          |         ^
          |         [[nodiscard]] 
  • src/geode/model/mixin/core/vertex_identifier.cpp:143:9: warning: [modernize-use-nodiscard]

    function 'has_component_mesh_vertices' should be marked [[nodiscard]]

      143 |         bool has_component_mesh_vertices(
          |         ^
          |         [[nodiscard]] 
  • src/geode/model/mixin/core/vertex_identifier.cpp:158:9: warning: [modernize-use-nodiscard]

    function 'has_component_mesh_vertices' should be marked [[nodiscard]]

      158 |         bool has_component_mesh_vertices(
          |         ^
          |         [[nodiscard]] 
  • src/geode/model/mixin/core/vertex_identifier.cpp:175:18: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      175 |             auto it = vertex2unique_vertex_.find( component.id() );
          |                  ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:228:55: warning: [readability-identifier-length]

    parameter name 'nb' is too short, expected at least 3 characters

      228 |         index_t create_unique_vertices( const index_t nb )
          |                                                       ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:270:24: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

      270 |             const auto it = absl::c_find( vertices, component_vertex_id );
          |                        ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:283:14: warning: [readability-function-cognitive-complexity]

    function 'update_unique_vertices' has cognitive complexity of 13 (threshold 10)

      283 |         void update_unique_vertices( const ComponentID& component_id,
          |              ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:288:17: note: nesting level increased to 1
      288 |                 [this, &component_id, &old2new]( index_t uv ) {
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:289:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      289 |                     if( !has_component_mesh_vertices( uv, component_id.id() ) )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:296:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      296 |                     for( const auto v : Indices{ all_vertices } )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:299:25: note: +3, including nesting penalty of 2, nesting level increased to 3
      299 |                         if( cmv.component_id.id() != component_id.id() )
          |                         ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:304:25: note: +3, including nesting penalty of 2, nesting level increased to 3
      304 |                         if( new_id == NO_ID )
          |                         ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:309:25: note: +1, nesting level increased to 3
      309 |                         else
          |                         ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:312:33: note: nesting level increased to 4
      312 |                                 [v, new_id]( std::vector< ComponentMeshVertex >&
          |                                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:318:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      318 |                     if( need_to_delete )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:321:29: note: nesting level increased to 3
      321 |                             [&to_delete](
          |                             ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:288:58: warning: [readability-identifier-length]

    parameter name 'uv' is too short, expected at least 3 characters

      288 |                 [this, &component_id, &old2new]( index_t uv ) {
          |                                                          ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:329:32: warning: [readability-function-cognitive-complexity]

    function 'delete_isolated_vertices' has cognitive complexity of 11 (threshold 10)

      329 |         std::vector< index_t > delete_isolated_vertices()
          |                                ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:334:13: note: +1, including nesting penalty of 0, nesting level increased to 1
      334 |             for( const auto v : Range{ nb_unique_vertices() } )
          |             ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:336:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      336 |                 if( is_unique_vertex_isolated( v ) )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:341:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      341 |                 for( const auto& cmv : component_mesh_vertices( v ) )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:349:13: note: +1, including nesting penalty of 0, nesting level increased to 1
      349 |             for( const auto& component_vertices : components_vertices )
          |             ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:353:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      353 |                 for( const auto v : component_vertices.second )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:356:21: note: +3, including nesting penalty of 2, nesting level increased to 3
      356 |                     if( value == NO_ID )
          |                     ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:391:13: warning: [readability-simplify-boolean-expr]

    boolean expression can be simplified by DeMorgan's theorem

      391 |             OPENGEODE_EXCEPTION(
          |             ^
    /__w/OpenGeode/OpenGeode/include/geode/basic/assert.hpp:121:29: note: expanded from macro 'OPENGEODE_EXCEPTION'
      121 |     if( ABSL_PREDICT_FALSE( !( condition ) ) )                                 \
          |         ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/build/third_party/abseil/install/include/absl/base/optimization.h:189:59: note: expanded from macro 'ABSL_PREDICT_FALSE'
      189 | #define ABSL_PREDICT_FALSE(x) (__builtin_expect(false || (x), false))
          |                                                           ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:406:36: warning: [readability-identifier-length]

    parameter name 'a' is too short, expected at least 3 characters

      406 |                     { []( Archive& a, Impl& impl ) {
          |                                    ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:411:44: error: [clang-diagnostic-error]

    no member named 'StdMap' in namespace 'bitsery::ext'

      411 |                              bitsery::ext::StdMap{
          |                              ~~~~~~~~~~~~~~^
  • src/geode/model/mixin/core/vertex_identifier.cpp:427:38: warning: [readability-identifier-length]

    parameter name 'a' is too short, expected at least 3 characters

      427 |                         []( Archive& a, Impl& impl ) {
          |                                      ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:432:47: error: [clang-diagnostic-error]

    no member named 'StdMap' in namespace 'bitsery::ext'

      432 |                                 bitsery::ext::StdMap{
          |                                 ~~~~~~~~~~~~~~^
  • src/geode/model/mixin/core/vertex_identifier.cpp:530:52: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      530 |         const MeshComponent& component, BuilderKey )
          |                                                    ^
          |                                                     /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:537:52: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      537 |         const MeshComponent& component, BuilderKey )
          |                                                    ^
          |                                                     /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:542:64: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      542 |     index_t VertexIdentifier::create_unique_vertex( BuilderKey )
          |                                                                ^
          |                                                                 /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:547:63: warning: [readability-identifier-length]

    parameter name 'nb' is too short, expected at least 3 characters

      547 |     index_t VertexIdentifier::create_unique_vertices( index_t nb, BuilderKey )
          |                                                               ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:547:78: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      547 |     index_t VertexIdentifier::create_unique_vertices( index_t nb, BuilderKey )
          |                                                                              ^
          |                                                                               /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:553:29: warning: [performance-unnecessary-value-param]

    the parameter 'component_vertex_id' is copied for each invocation but only used as a const reference; consider making it a const reference

      553 |         ComponentMeshVertex component_vertex_id,
          |                             ^
          |         const              &
  • src/geode/model/mixin/core/vertex_identifier.cpp:555:20: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      555 |         BuilderKey )
          |                    ^
          |                     /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:558:13: warning: [hicpp-move-const-arg]

    passing result of std::move() as a const reference argument; no move will actually happen

      558 |             std::move( component_vertex_id ), unique_vertex_id );
          |             ^~~~~~~~~~                     ~
    /__w/OpenGeode/OpenGeode/include/geode/model/mixin/core/vertex_identifier.hpp:49:32: note: 'ComponentMeshVertex' is not move assignable/constructible
       49 |     struct opengeode_model_api ComponentMeshVertex
          |                                ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:564:20: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      564 |         BuilderKey )
          |                    ^
          |                     /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:572:20: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      572 |         BuilderKey )
          |                    ^
          |                     /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:584:48: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      584 |         std::string_view directory, BuilderKey )
          |                                                ^
          |                                                 /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:586:9: warning: [readability-avoid-return-with-void-value]

    return statement within a void function should not have a specified return value

      586 |         return impl_->load( directory );
          |         ^~~~~~
  • src/geode/model/mixin/core/vertex_identifier.cpp:590:20: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      590 |         BuilderKey )
          |                    ^
          |                     /*unused*/

Have any feedback or feature suggestions? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants