codenautas / qa-control

QA control of things that nobody controls
MIT License
1 stars 0 forks source link

mejorar el control de "use strict"; #43 para que acepte strings como keys en object definitions #51

Closed emilioplatzer closed 8 years ago

emilioplatzer commented 8 years ago

Según como lo había definido no acepta:

{
   'algo asi': 'esta bien'
}

Hay que agregar a la regla que para dar warning no debe haber un signo de dos puntos en la línea. Así ese no da warning.

Se puede probar con tedede que da errores por eso

emilioplatzer commented 8 years ago

Relacionado a #43

emilioplatzer commented 8 years ago

Mejorar los casos de prueba de esto. Tuve que hacer una modificación de emergencia (en c0fd646cbb13cf7ef9e3d1a55aea6a2158c3a3cd) para que no de warnings.

La idea es que acepte cualquier objeto indexado por strings (independientemente de si está o no de si la línea actual está precedida por otra clave con strings o no). Por ejemplo tiene que acetar:

f({
    algo: {
    },
    "esto así:"asdfasd",
    "esto otro": 1
    aquello: null,
    "mas uno": [ 
        "etc", 
        "etc",
        "etc",
    ]
}
emilioplatzer commented 8 years ago

Obviamente también tiene que rechazar:

function pepe(
   " use pirip";
)

y las variantes antes mencionadas de strings sueltos en la primera línea de una definición de función o al principio de un archivo.

diegoefe commented 8 years ago

Este último no es un error de sintaxis?

emilioplatzer commented 8 years ago

sí, quise decir:

function pepe(){
   " use pirip";
}
diegoefe commented 8 years ago

Podríamos decir que debe fallar requiriendo "use strict"; si se cumple cualquiera de las siguientes condiciones:

Falta algo?

emilioplatzer commented 8 years ago

Creo que no. Donde dice "no tiene un ':' " se refiere a la actual, no a la previa. ¿Te parece?

diegoefe commented 8 years ago

No, tenés razón, ya estoy haciendo algo más elaborado