Con 2 campos tardíos del mismo tipo como el siguiente código:
class A {
late double a;
late double b;
}
Error de salida de dartdoc --enable-experiment=non-nullable
:
Generating docs for library a from package:hello_world/a.dart...
error: failed to write file at: a/A/double.html, for symbol a.A.double: (file:///home/a14n/hello_world/lib/a.dart:2:8)
Dartdoc generates a path and filename to write to for each symbol.
a.A.double conflicts with another symbol in the generated path, and
therefore can not be written out. Changing the name, library name, or
class name (if appropriate) of one of the conflicting items can resolve
the conflict. Alternatively, use the <strong i="10">@nodoc</strong> tag in one symbol's
documentation comments to hide it.
Con solo un campo tardío, no aparece ningún problema.
FWIW, este problema está bloqueando la migración de flutter a nullsafety.
¿Dónde está el emoji con cara de vergüenza ... Qué error tan extraño. Veré esto hoy.
dartdoc no considera que su fuente esté habilitada para la función de seguridad nula. Hay como 17 razones por las que esto podría ser, jaja. ¿Puede comprobar lo siguiente?
analyzer:
enable-experiment:
- non-nullable
null-safety
? Si lo está invocando a través de pub, probablemente sea algo así como pub global run dartdoc --enable-experiment=null-safety
.sí, tengo un paquete simple con
//------ analysis_options.yaml
analyzer:
enable-experiment:
- non-nullable
//------ pubspec.yaml
name: hello_world
environment:
sdk: ">=2.9.0-14.0.dev <3.0.0"
//------ lib/a.dart
class A {
late double a;
late double b;
}
Y ejecuto dartdoc --enable-experiment=non-nullable
(el mismo error con dartdoc --enable-experiment=null-safety
).
Puede ver la falla en mi flutter PR https://cirrus-ci.com/task/4975447580606464?command=main#L137
@srawlins, ¿ha podido reproducir el problema?
FWIW, este problema está bloqueando la migración de flutter a nullsafety
¿Esto está bloqueando la migración? ¿Bloqueando algún aspecto de la misma? ¿Tiene una solución a corto plazo?
No he podido reproducir esto al optar por la seguridad nula a través de pubspec:
environment:
sdk: '>=2.9.0-18.0 <2.9.0'
y opciones_análisis:
analyzer:
enable-experiment:
- non-nullable
y usando dartdoc en la cabecera, ejecutando dart
en la cabecera:
~/code/dart-sdk/sdk/xcodebuild/ReleaseX64/dart-sdk/bin/dart
--enable-experiment=non-nullable
../dart-dartdoc/bin/dartdoc.dart
--enable-experiment=non-nullable
Estoy en el proceso de lanzar dartdoc, ya que ha pasado un tiempo. También comprobaré la versión actual más reciente.
¿Esto está bloqueando la migración? ¿Bloqueando algún aspecto de la misma?
Sí, porque el trabajo de docs-linux
siempre está fallando. (Ver aleteo / aleteo # 62157)
¿Tiene una solución a corto plazo?
Eliminar todo late
no es realmente una solución porque deberá agregar !
y ?
todas partes :-(
El trabajo fallido menciona dartdoc version: 0.32.1
. ¿Podrías comprobar que esta versión desencadena el problema de tu lado? Si ve el problema, podría significar que se ha solucionado en algún momento y la próxima versión resolverá el problema.
Entendido; Esperaba que algunas banderas pudiéramos pasar a dartdoc (o banderas que pudiéramos omitir) que nos permitieran continuar mientras tanto.
@srawlins : creo que una solución aquí será importante para permitir que la migración de nnbd progrese en general.
Sí, parece que puedo reproducir esto en 0.32.1, usando Dart 2.10.0-dev.something. Hay un 0.32.2 inédito que podría funcionar. Lo intentaré también.
Puedo reproducir usando pub global run
en la etiqueta git v0.32.2 y en master.Estoy trabajando para ver por qué pub
es el culpable.
Rasca eso. Tenía un // @dart=2.9
perdido en mi archivo de prueba (que ahora es _demasiado bajo_ para indicar seguridad nula).
No puedo reproducir el error con pub run dartdoc
en dartdoc 0.32.1, ni git branch v0.32.2, ni en head.
FWIW, no veo --enable-experiment=non-nullable
en la invocación de dartdoc en el bot linux vinculado.
No veo --enable-experiment=non-nullable
en su enlace cirrus, ni en el último enlace cirrus en su PR.
¡Buena atrapada! Debería solucionar el problema.
(Pero a nivel local, realmente no sé qué hice para ver este problema)
Háganos saber si funciona. Planeo publicar dartdoc mañana por la mañana, después de que sea examinado internamente.
Agregar --enable-experiment=non-nullable
solucionó el problema. Gracias por tu ayuda.