Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Collection Membership operator can return unintuitive results if collection has mix of types

Abierto
#1,240 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
java
Área
backend

Línea de trabajo

Comienza con CollectionMembershipOperator.java, especialmente las líneas 34-47, y rastrea cómo las operaciones de membership y “is containing” convierten colecciones de tipos mixtos. Reproduce los ejemplos del issue y establece después el comportamiento de comparación previsto antes de identificar la cobertura de regresión necesaria para demostrar que los valores null, numéricos, de tipo string y booleanos se gestionan de forma coherente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Since the CollectionMembershipOperator coerces the type of the item being tested to the first (or first non-null) element in the list, it can lead to unexpected/unintuitive results.

https://github.com/HubSpot/jinjava/blob/af0819ac4cfc8fb99cfa9b7ccddfbfd251946f9d/src/main/java/com/hubspot/jinjava/el/ext/CollectionMembershipOperator.java#L34-L47

{{ null in [null, 1, 2] }} {# true #}
{{ null in [1, null, 2] }} {# false - null converted to 0; no 0 in list #}
{{ null in [1, null, 2, 0] }} {# true - because of the 0 in the list, not the null #}
{{ null in [0, 1, 2] }} {# true #}

{{ 1 in ['1', 2 ] }} {# true - 1 converted to '1' #}
{{ 2 in ['1', 2 ] }} {# false - 2 is converted to '2', no '2' in list #}
{{ 1 in [false, 1] }} {# false - 1 converted to true #}
{{ 1 in [true, 0] }} {# true #}
{{ 1 in [null, 'abc', 1] }} {# false #}

{{ '' in [1, '', 2] }} {# false #}
{{ '' in [0, 1, 2] }} {# true #}

(The same applies to is containing, e.g. [false, 1] is containing 1 is false)

Lenguaje dominante
Java
Estrellas
785
Forks
184
Merge medio
6 d 22 h
PR fusionados (30 d)
1

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de HubSpot/jinjava

Todos los issues de HubSpot/jinjava

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.