Skip to content

fix(Attribute): change no_value to optional - #1341

Open
BotellaA wants to merge 2 commits into
nextfrom
fix/optional-no-value
Open

BotellaA wants to merge 2 commits into
nextfrom
fix/optional-no-value

Conversation

@BotellaA

@BotellaA BotellaA commented Oct 8, 2026

Copy link
Copy Markdown
Member

AttributeValues::no_value is now a std::optional: when empty, every element has a value (has_value() returns true).

  • Removes no_value = {} assignments and no_value on bool attributes.
  • Rebuild required: this changes the ABI of AttributeValues.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@BotellaA
BotellaA requested a review from BenPinet October 8, 2026 12:10
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy (v21.1.8) reports: 330 concern(s)
  • include/geode/basic/attribute_utils.hpp:83:37: warning: [readability-redundant-member-init]

    initializer for member 'time' is redundant

       83 |         std::optional< double > time{};
          |                                     ^~
  • include/geode/basic/attribute_utils.hpp:174:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ATTRIBUTE_LINEAR_INTERPOLATION' used; consider a 'constexpr' template function

      174 | #define IMPLICIT_ATTRIBUTE_LINEAR_INTERPOLATION( Type )                        \
          |         ^
  • include/geode/basic/attribute_utils.hpp:208:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ARRAY_ATTRIBUTE_LINEAR_INTERPOLATION' used; consider a 'constexpr' template function

      208 | #define IMPLICIT_ARRAY_ATTRIBUTE_LINEAR_INTERPOLATION( Type )                  \
          |         ^
  • include/geode/basic/attribute_utils.hpp:287:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_GENERIC_ATTRIBUTE_CONVERSION' used; consider a 'constexpr' template function

      287 | #define IMPLICIT_GENERIC_ATTRIBUTE_CONVERSION( Type )                          \
          |         ^
  • include/geode/basic/attribute_utils.hpp:323:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ARRAY_GENERIC_ATTRIBUTE_CONVERSION' used; consider a 'constexpr' template function

      323 | #define IMPLICIT_ARRAY_GENERIC_ATTRIBUTE_CONVERSION( Type )                    \
          |         ^
  • include/geode/basic/sparse_attribute.hpp:142:30: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      142 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/sparse_attribute.hpp:145:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

      145 |         SparseAttribute( std::string_view name )
          |         ^
          |         explicit 
  • include/geode/basic/sparse_attribute.hpp:172:62: warning: [readability-identifier-length]

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

      172 |                              []( Archive& archive2, index_t& i, T& item ) {
          |                                                              ^
  • include/geode/basic/sparse_attribute.hpp:186:65: warning: [readability-identifier-length]

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

      186 |                                 []( Archive& archive2, index_t& i, T& item ) {
          |                                                                 ^
  • include/geode/basic/sparse_attribute.hpp:191:30: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      191 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/sparse_attribute.hpp:307:31: warning: [readability-identifier-length]

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

      307 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/sparse_attribute.hpp:337:31: warning: [readability-identifier-length]

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

      337 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/variable_attribute.hpp:134:30: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      134 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/variable_attribute.hpp:137:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

      137 |         VariableAttribute( std::string_view name )
          |         ^
          |         explicit 
  • include/geode/basic/variable_attribute.hpp:175:30: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      175 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/variable_attribute.hpp:313:31: warning: [readability-identifier-length]

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

      313 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/variable_attribute.hpp:342:55: warning: [hicpp-move-const-arg]

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

      342 |             : VariableAttribute( default_value, name, std::move( properties ) )
          |                                                       ^~~~~~~~~~            ~
  • include/geode/basic/variable_attribute.hpp:348:20: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      348 |             return reinterpret_cast< const bool& >( values_[element] );
          |                    ^
  • include/geode/basic/variable_attribute.hpp:363:32: warning: [hicpp-move-const-arg]

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

      363 |             values_[element] = std::move( value );
          |                                ^~~~~~~~~~       ~
  • include/geode/basic/variable_attribute.hpp:363:32: warning: [readability-implicit-bool-conversion]

    implicit conversion 'bool' -> 'value_type' (aka 'unsigned char')

      363 |             values_[element] = std::move( value );
          |                                ^                 
          |                                static_cast<value_type>( )
  • include/geode/basic/variable_attribute.hpp:374:23: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      374 |             modifier( reinterpret_cast< bool& >( values_[element] ) );
          |                       ^
  • include/geode/basic/variable_attribute.hpp:401:48: warning: [hicpp-move-const-arg]

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

      401 |             : ReadOnlyAttribute< bool >( name, std::move( properties ) ),
          |                                                ^~~~~~~~~~            ~
  • include/geode/basic/variable_attribute.hpp:404:30: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      404 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/variable_attribute.hpp:407:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

      407 |         VariableAttribute( std::string_view name )
          |         ^
          |         explicit 
  • include/geode/basic/variable_attribute.hpp:422:31: warning: [cppcoreguidelines-init-variables]

    variable 'old_value' is not initialized

      422 |                          bool old_value;
          |                               ^        
          |                                         = false
  • include/geode/basic/variable_attribute.hpp:440:30: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      440 |             values_.reserve( 10 );
          |                              ^
  • include/geode/basic/variable_attribute.hpp:479:38: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      479 |                     default_values_, this->name().value(), this->properties() }
          |                                      ^~~~~~~~~~~~
  • include/geode/basic/variable_attribute.hpp:499:34: warning: [readability-implicit-bool-conversion]

    implicit conversion 'bool' -> 'value_type' (aka 'unsigned char')

      499 |                     values_[i] = typed_attribute.value( i );
          |                                  ^                         
          |                                  static_cast<value_type>(  )
  • include/geode/basic/variable_attribute.hpp:511:38: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      511 |                     default_values_, this->name().value(), this->properties() }
          |                                      ^~~~~~~~~~~~
  • include/geode/basic/variable_attribute.hpp:544:38: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      544 |                     default_values_, this->name().value(), this->properties() }
          |                                      ^~~~~~~~~~~~
  • include/geode/basic/variable_attribute.hpp:550:31: warning: [readability-identifier-length]

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

      550 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/variable_attribute.hpp:580:31: warning: [readability-identifier-length]

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

      580 |             for( const auto& [in, outs] : old2new_mapping.in2out_map() )
          |                               ^
  • include/geode/basic/variable_attribute.hpp:591:45: warning: [readability-redundant-member-init]

    initializer for member 'values_' is redundant

      591 |         std::vector< unsigned char > values_{};
          |                                             ^~
  • include/geode/mesh/core/internal/texture_impl.hpp:36:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       36 | namespace geode
          | ^~~~~~~~~~~~~~~
       37 | {
          | ~
       38 |     namespace internal
          |     ~~~~~~~~~~~~~~~~~~
          |     namespace geode::internal
  • include/geode/mesh/core/internal/texture_impl.hpp:47:38: warning: [readability-identifier-naming]

    invalid case style for private member 'DEFAULT_COORD'

       47 |             const Point< dimension > DEFAULT_COORD;
          |                                      ^~~~~~~~~~~~~
          |                                      DEFAULT_COORD_
  • include/geode/mesh/core/internal/texture_impl.hpp:67:17: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'texture_coordinates_impl' of convertible types are easily swapped by mistake

       67 |                 index_t element, local_index_t vertex ) const
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/include/geode/mesh/core/internal/texture_impl.hpp:67:25: note: the first parameter in the range is 'element'
       67 |                 index_t element, local_index_t vertex ) const
          |                         ^~~~~~~
    /__w/OpenGeode/OpenGeode/include/geode/mesh/core/internal/texture_impl.hpp:67:48: note: the last parameter in the range is 'vertex'
       67 |                 index_t element, local_index_t vertex ) const
          |                                                ^~~~~~
    /__w/OpenGeode/OpenGeode/include/geode/mesh/core/internal/texture_impl.hpp:67:17: note: 
       67 |                 index_t element, local_index_t vertex ) const
          |                 ^
    /__w/OpenGeode/OpenGeode/include/geode/mesh/core/internal/texture_impl.hpp:67:34: note: 'index_t' and 'local_index_t' may be implicitly converted: 'index_t' (as 'unsigned int') -> 'local_index_t' (as 'unsigned char'), 'local_index_t' (as 'unsigned char') -> 'index_t' (as 'unsigned int')
       67 |                 index_t element, local_index_t vertex ) const
          |                                  ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:132:9: warning: [google-explicit-constructor]

    single-argument constructors must be marked explicit to avoid unintentional implicit conversions

      132 |         Impl( BITSERY ) {}
          |         ^
          |         explicit 
  • src/geode/model/mixin/core/vertex_identifier.cpp:132:23: warning: [hicpp-named-parameter]

    all parameters should be named in a function

      132 |         Impl( BITSERY ) {}
          |                       ^
          |                        /*unused*/
  • src/geode/model/mixin/core/vertex_identifier.cpp:134:9: warning: [modernize-use-nodiscard]

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

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

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

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

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

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

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

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

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

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

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

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

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

      190 |         const uuid& unique_vertex_attribute_id() const
          |         ^
          |         [[nodiscard]] 
  • src/geode/model/mixin/core/vertex_identifier.cpp:259:55: warning: [readability-identifier-length]

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

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

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

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

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

      314 |         void update_unique_vertices( const ComponentID& component_id,
          |              ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:319:17: note: nesting level increased to 1
      319 |                 [this, &component_id, &old2new]( index_t uv ) {
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:320:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      320 |                     if( !has_component_mesh_vertices( uv, component_id.id ) )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:327:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      327 |                     for( const auto v : Indices{ all_vertices } )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:330:25: note: +3, including nesting penalty of 2, nesting level increased to 3
      330 |                         if( cmv.component_id.id != component_id.id )
          |                         ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:335:25: note: +3, including nesting penalty of 2, nesting level increased to 3
      335 |                         if( new_id == NO_ID )
          |                         ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:340:25: note: +1, nesting level increased to 3
      340 |                         else
          |                         ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:343:33: note: nesting level increased to 4
      343 |                                 [v, new_id]( std::vector< ComponentMeshVertex >&
          |                                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:349:21: note: +2, including nesting penalty of 1, nesting level increased to 2
      349 |                     if( need_to_delete )
          |                     ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:352:29: note: nesting level increased to 3
      352 |                             [&to_delete](
          |                             ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:319:58: warning: [readability-identifier-length]

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

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

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

      360 |         std::vector< index_t > delete_isolated_vertices()
          |                                ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:365:13: note: +1, including nesting penalty of 0, nesting level increased to 1
      365 |             for( const auto v : Range{ nb_unique_vertices() } )
          |             ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:367:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      367 |                 if( is_unique_vertex_isolated( v ) )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:372:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      372 |                 for( const auto& cmv : component_mesh_vertices( v ) )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:380:13: note: +1, including nesting penalty of 0, nesting level increased to 1
      380 |             for( const auto& component_vertices : components_vertices )
          |             ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:384:17: note: +2, including nesting penalty of 1, nesting level increased to 2
      384 |                 for( const auto v : component_vertices.second )
          |                 ^
    /__w/OpenGeode/OpenGeode/src/geode/model/mixin/core/vertex_identifier.cpp:387:21: note: +3, including nesting penalty of 2, nesting level increased to 3
      387 |                     if( value == NO_ID )
          |                     ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:449:59: warning: [readability-identifier-length]

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

      449 |                              []( Archive& archive2, uuid& id,
          |                                                           ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:473:62: warning: [readability-identifier-length]

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

      473 |                                 []( Archive& archive2, uuid& id,
          |                                                              ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:535:17: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      535 |                 unique_vertices_ids.value().size() == 1, nullptr,
          |                 ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:542:25: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      542 |                         unique_vertices_ids.value().front() );
          |                         ^~~~~~~~~~~~~~~~~~~
  • src/geode/model/mixin/core/vertex_identifier.cpp:558:17: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      558 |                 unique_vertices_ids.value().front() );
          |                 ^~~~~~~~~~~~~~~~~~~
  • src/geode/model/mixin/core/vertex_identifier.cpp:651:17: warning: [readability-identifier-length]

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

      651 |         index_t nb, BuilderKey /*key*/ )
          |                 ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:657: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

      657 |         ComponentMeshVertex component_vertex_id,
          |                             ^
          |         const              &
  • src/geode/model/mixin/core/vertex_identifier.cpp:662:13: warning: [hicpp-move-const-arg]

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

      662 |             std::move( component_vertex_id ), unique_vertex_id );
          |             ^~~~~~~~~~                     ~
    /__w/OpenGeode/OpenGeode/include/geode/model/mixin/core/vertex_identifier.hpp:50:32: note: 'ComponentMeshVertex' is not move assignable/constructible
       50 |     struct opengeode_model_api ComponentMeshVertex
          |                                ^
  • src/geode/model/mixin/core/vertex_identifier.cpp:690:9: warning: [readability-avoid-return-with-void-value]

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

      690 |         return impl_->load( directory );
          |         ^~~~~~
  • tests/basic/test-attribute.cpp:50:5: warning: [modernize-use-nodiscard]

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

       50 |     float generic_value() const
          |     ^
          |     [[nodiscard]] 
  • tests/basic/test-attribute.cpp:111:6: warning: [misc-use-internal-linkage]

    function 'test_constant_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      111 | void test_constant_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:128:48: warning: [readability-simplify-boolean-expr]

    redundant boolean literal supplied to boolean operator

      128 |         constant_attribute->default_value() == true, "Wrong default value" );
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
          |         constant_attribute->default_value()
  • tests/basic/test-attribute.cpp:139:28: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      139 |         !attribute->value( 12 ), "Should be equal to false" );
          |                            ^
  • tests/basic/test-attribute.cpp:142:6: warning: [misc-use-internal-linkage]

    function 'test_foo_constant_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      142 | void test_foo_constant_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:157:23: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      157 |         foo.double_ = 12.4;
          |                       ^
  • tests/basic/test-attribute.cpp:160:48: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      160 |         constant_attribute->value().double_ == 12.4,
          |                                                ^
  • tests/basic/test-attribute.cpp:164:6: warning: [misc-use-internal-linkage]

    function 'test_foo_variable_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      164 | void test_foo_variable_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:193:23: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      193 |         foo.double_ = 12.4;
          |                       ^
  • tests/basic/test-attribute.cpp:198:51: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      198 |         variable_attribute->value( 3 ).double_ == 12.4,
          |                                                   ^
  • tests/basic/test-attribute.cpp:202:6: warning: [misc-use-internal-linkage]

    function 'test_int_variable_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      202 | void test_int_variable_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:210:38: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      210 |     attribute_values.default_value = 12;
          |                                      ^
  • tests/basic/test-attribute.cpp:217:63: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      217 |         variable_attribute->default_values().default_value == 12,
          |                                                               ^
  • tests/basic/test-attribute.cpp:225:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      225 |     geode::OpenGeodeBasicException::test( attribute->value( 6 ) == 12,
          |                                                             ^
  • tests/basic/test-attribute.cpp:225:68: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      225 |     geode::OpenGeodeBasicException::test( attribute->value( 6 ) == 12,
          |                                                                    ^
  • tests/basic/test-attribute.cpp:228:39: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      228 |     variable_attribute->set_value( 3, 5 );
          |                                       ^
  • tests/basic/test-attribute.cpp:229:68: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      229 |     geode::OpenGeodeBasicException::test( attribute->value( 3 ) == 5,
          |                                                                    ^
  • tests/basic/test-attribute.cpp:233:13: warning: [misc-use-internal-linkage]

    function 'test_copy_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      233 | geode::uuid test_copy_attribute(
          |             ^
          | static 
  • tests/basic/test-attribute.cpp:252:6: warning: [misc-use-internal-linkage]

    function 'test_foo_sparse_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      252 | void test_foo_sparse_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:267:23: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      267 |         foo.double_ = 12.4;
          |                       ^
  • tests/basic/test-attribute.cpp:275:49: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      275 |         sparse_attribute->value( 3 ).double_ == 12.4,
          |                                                 ^
  • tests/basic/test-attribute.cpp:282:6: warning: [misc-use-internal-linkage]

    function 'test_double_sparse_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      282 | void test_double_sparse_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:290:38: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      290 |     attribute_values.default_value = 12.;
          |                                      ^
  • tests/basic/test-attribute.cpp:298:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      298 |         sparse_attribute->default_values().default_value == 12,
          |                                                             ^
  • tests/basic/test-attribute.cpp:301:34: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      301 |     sparse_attribute->set_value( 7, 7 );
          |                                  ^
  • tests/basic/test-attribute.cpp:301:37: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      301 |     sparse_attribute->set_value( 7, 7 );
          |                                     ^
  • tests/basic/test-attribute.cpp:303:49: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      303 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                 ^
  • tests/basic/test-attribute.cpp:303:56: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      303 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                        ^
  • tests/basic/test-attribute.cpp:303:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      303 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                             ^
  • tests/basic/test-attribute.cpp:311:34: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      311 |         attribute->value( 4 ) == 8.1, "Should be equal to 8.1" );
          |                                  ^
  • tests/basic/test-attribute.cpp:313:27: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      313 |         attribute->value( 6 ) == 12, "Should be equal to 12" );
          |                           ^
  • tests/basic/test-attribute.cpp:313:34: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      313 |         attribute->value( 6 ) == 12, "Should be equal to 12" );
          |                                  ^
  • tests/basic/test-attribute.cpp:315:27: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      315 |         attribute->value( 7 ) == 7, "Should be equal to 7" );
          |                           ^
  • tests/basic/test-attribute.cpp:315:34: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      315 |         attribute->value( 7 ) == 7, "Should be equal to 7" );
          |                                  ^
  • tests/basic/test-attribute.cpp:317:37: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      317 |     sparse_attribute->set_value( 3, 5 );
          |                                     ^
  • tests/basic/test-attribute.cpp:319:34: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      319 |         attribute->value( 3 ) == 5, "Should be equal to 5" );
          |                                  ^
  • tests/basic/test-attribute.cpp:322:6: warning: [misc-use-internal-linkage]

    function 'test_double_array_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      322 | void test_double_array_attribute( geode::AttributeManager& manager )
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:329:42: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      329 |     attribute_values.default_value = { { 10., 11., 12. } };
          |                                          ^
  • tests/basic/test-attribute.cpp:329:47: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      329 |     attribute_values.default_value = { { 10., 11., 12. } };
          |                                               ^
  • tests/basic/test-attribute.cpp:329:52: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      329 |     attribute_values.default_value = { { 10., 11., 12. } };
          |                                                    ^
  • tests/basic/test-attribute.cpp:338:63: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      338 |         array_attribute->default_values().default_value[0] == 10.,
          |                                                               ^
  • tests/basic/test-attribute.cpp:341:63: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      341 |         array_attribute->default_values().default_value[1] == 11.,
          |                                                               ^
  • tests/basic/test-attribute.cpp:344:63: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      344 |         array_attribute->default_values().default_value[2] == 12.,
          |                                                               ^
  • tests/basic/test-attribute.cpp:346:44: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      346 |     array_attribute->set_value( 3, { { 1., 2., 3. } } );
          |                                            ^
  • tests/basic/test-attribute.cpp:346:48: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      346 |     array_attribute->set_value( 3, { { 1., 2., 3. } } );
          |                                                ^
  • tests/basic/test-attribute.cpp:347:33: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      347 |     array_attribute->set_value( 7, { { 2., 5., 7. } } );
          |                                 ^
  • tests/basic/test-attribute.cpp:347:40: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      347 |     array_attribute->set_value( 7, { { 2., 5., 7. } } );
          |                                        ^
  • tests/basic/test-attribute.cpp:347:44: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      347 |     array_attribute->set_value( 7, { { 2., 5., 7. } } );
          |                                            ^
  • tests/basic/test-attribute.cpp:347:48: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      347 |     array_attribute->set_value( 7, { { 2., 5., 7. } } );
          |                                                ^
  • tests/basic/test-attribute.cpp:349:49: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      349 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                 ^
  • tests/basic/test-attribute.cpp:349:56: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      349 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                        ^
  • tests/basic/test-attribute.cpp:349:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      349 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                             ^
  • tests/basic/test-attribute.cpp:356:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      356 |     geode::OpenGeodeBasicException::test( attribute->value( 2 )[1] == 2.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:358:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      358 |     geode::OpenGeodeBasicException::test( attribute->value( 2 )[2] == 3.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:362:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      362 |     geode::OpenGeodeBasicException::test( attribute->value( 3 )[1] == 2.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:364:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      364 |     geode::OpenGeodeBasicException::test( attribute->value( 3 )[2] == 3.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:366:71: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      366 |     geode::OpenGeodeBasicException::test( attribute->value( 4 )[0] == 5.6,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:368:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      368 |     geode::OpenGeodeBasicException::test( attribute->value( 4 )[1] == 7.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:370:71: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      370 |     geode::OpenGeodeBasicException::test( attribute->value( 4 )[2] == 8.1,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:372:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      372 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[0] == 10.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:372:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      372 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[0] == 10.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:373:71: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      373 |         "Value [6,0] Should be equal to 10., not ", attribute->value( 6 )[0] );
          |                                                                       ^
  • tests/basic/test-attribute.cpp:374:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      374 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[1] == 11.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:374:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      374 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[1] == 11.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:375:71: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      375 |         "Value [6,1] Should be equal to 11., not ", attribute->value( 6 )[1] );
          |                                                                       ^
  • tests/basic/test-attribute.cpp:376:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      376 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[2] == 12.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:376:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      376 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[2] == 12.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:377:71: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      377 |         "Value [6,2] Should be equal to 12., not ", attribute->value( 6 )[2] );
          |                                                                       ^
  • tests/basic/test-attribute.cpp:378:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      378 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[0] == 2.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:378:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      378 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[0] == 2.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:379:70: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      379 |         "Value [7,0] Should be equal to 2., not ", attribute->value( 7 )[0] );
          |                                                                      ^
  • tests/basic/test-attribute.cpp:380:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      380 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[1] == 5.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:380:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      380 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[1] == 5.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:381:70: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      381 |         "Value [7,1] Should be equal to 5., not ", attribute->value( 7 )[1] );
          |                                                                      ^
  • tests/basic/test-attribute.cpp:382:61: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      382 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[2] == 7.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:382:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      382 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[2] == 7.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:383:70: warning: [cppcoreguidelines-avoid-magic-numbers]

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

      383 |         "Value [7,2] Should be equal to 7., not ", attribute->value( 7 )[2] );
          |                                                                      ^
  • tests/basic/test-attribute.cpp:385:38: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      385 |     array_attribute->set_value( 3, { 2., 5., 5. } );
          |                                      ^
  • tests/basic/test-attribute.cpp:385:42: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      385 |     array_attribute->set_value( 3, { 2., 5., 5. } );
          |                                          ^
  • tests/basic/test-attribute.cpp:385:46: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      385 |     array_attribute->set_value( 3, { 2., 5., 5. } );
          |                                              ^
  • tests/basic/test-attribute.cpp:387:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      387 |         attribute->value( 3 )[0] == 2., "Should be equal to 2." );
          |                                     ^
  • tests/basic/test-attribute.cpp:389:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      389 |         attribute->value( 3 )[1] == 5., "Should be equal to 5." );
          |                                     ^
  • tests/basic/test-attribute.cpp:391:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      391 |         attribute->value( 3 )[2] == 5., "Should be equal to 5." );
          |                                     ^
  • tests/basic/test-attribute.cpp:394:6: warning: [misc-use-internal-linkage]

    function 'test_bool_variable_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      394 | void test_bool_variable_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:410:63: warning: [readability-simplify-boolean-expr]

    redundant boolean literal supplied to boolean operator

      410 |         variable_attribute->default_values().default_value == false,
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
          |         !variable_attribute->default_values().default_value
  • tests/basic/test-attribute.cpp:424:6: warning: [misc-use-internal-linkage]

    function 'managers_have_same_attributes' can be made static or moved into an anonymous namespace to enforce internal linkage

      424 | bool managers_have_same_attributes( const geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:452:6: warning: [misc-use-internal-linkage]

    function 'check_one_attribute_values' can be made static or moved into an anonymous namespace to enforce internal linkage

      452 | void check_one_attribute_values( geode::AttributeManager& manager,
          |      ^
          | static 

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