Dengan 2 bidang akhir dari jenis yang sama seperti kode berikut:
class A {
late double a;
late double b;
}
dartdoc --enable-experiment=non-nullable
menghasilkan kesalahan:
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.
Dengan hanya satu bidang terlambat, tidak ada masalah yang muncul.
FWIW masalah ini memblokir migrasi flutter ke nullsafety.
Mana emoji wajah ngeri... Bug yang aneh. Saya akan melihat ini hari ini.
dartdoc tidak melihat sumber Anda diikutsertakan dalam fitur keamanan nol. Ada seperti, 17 alasan ini mungkin, haha. Bisakah Anda memeriksa hal-hal berikut:
analyzer:
enable-experiment:
- non-nullable
null-safety
? Jika Anda menjalankannya melalui pub, itu mungkin seperti pub global run dartdoc --enable-experiment=null-safety
.ya saya punya paket sederhana dengan
//------ 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;
}
Dan saya menjalankan dartdoc --enable-experiment=non-nullable
(kesalahan yang sama dengan dartdoc --enable-experiment=null-safety
).
Anda dapat melihat kegagalan pada flutter PR saya https://cirrus-ci.com/task/497547580606464?command=main#L137
@srawlins apakah Anda dapat mereproduksi masalah?
FWIW masalah ini memblokir migrasi flutter ke nullsafety
Apakah ini memblokir migrasi? Memblokir beberapa aspek itu? Apakah Anda memiliki solusi dalam waktu dekat?
Saya belum dapat mereproduksi ini saat memilih ke keamanan nol melalui pubspec:
environment:
sdk: '>=2.9.0-18.0 <2.9.0'
dan analysis_options:
analyzer:
enable-experiment:
- non-nullable
dan menggunakan dartdoc di head, menjalankan dart
di head:
~/code/dart-sdk/sdk/xcodebuild/ReleaseX64/dart-sdk/bin/dart
--enable-experiment=non-nullable
../dart-dartdoc/bin/dartdoc.dart
--enable-experiment=non-nullable
Saya sedang dalam proses merilis dartdoc, karena sudah lama. Saya juga akan memeriksa rilis terbaru saat ini.
Apakah ini memblokir migrasi? Memblokir beberapa aspek itu?
Ya karena pekerjaan docs-linux
selalu gagal. (Lihat bergetar/berkibar#62157)
Apakah Anda memiliki solusi dalam waktu dekat?
Hapus semua late
sebenarnya bukan solusi karena perlu menambahkan !
dan ?
mana-mana :-(
Pekerjaan yang gagal menyebutkan dartdoc version: 0.32.1
. Bisakah Anda memeriksa apakah versi ini memicu masalah di pihak Anda? Jika Anda melihat masalah, itu bisa berarti bahwa masalah tersebut telah diperbaiki di beberapa titik dan rilis berikutnya akan menyelesaikan masalah tersebut.
Kena kau; Saya berharap untuk beberapa bendera yang dapat kami berikan ke dartdoc (atau bendera yang dapat kami hilangkan) yang akan memungkinkan kami melanjutkan sementara itu.
@srawlins - Saya pikir perbaikan di sini penting untuk membiarkan migrasi nnbd berkembang secara umum.
Ya sepertinya saya bisa mereproduksi ini di 0.32.1, menggunakan Dart 2.10.0-dev.something. Ada 0.32.2 yang belum dirilis yang mungkin berfungsi. Saya akan mencobanya juga.
Saya dapat mereproduksi menggunakan pub global run
pada tag git v0.32.2, dan pada master.Saya sedang mencari tahu mengapa pub
adalah pelakunya.
Gores itu. Saya memiliki // @dart=2.9
tersesat di file pengujian saya (yang sekarang _terlalu rendah_ untuk menunjukkan keamanan Null).
Saya tidak dapat mereproduksi kesalahan dengan pub run dartdoc
di dartdoc 0.32.1, atau git branch v0.32.2, atau di head.
FWIW, saya tidak melihat --enable-experiment=non-nullable
dalam doa dartdoc pada bot linux yang ditautkan.
Saya tidak melihat --enable-experiment=non-nullable
di tautan cirrus Anda, atau di tautan cirrus terbaru di PR Anda.
Tangkapan yang bagus! Ini harus memperbaiki masalah.
(Tapi secara lokal saya benar-benar tidak tahu apa yang saya lakukan untuk melihat masalah ini)
Beri tahu kami jika itu berhasil. Saya berencana menerbitkan dartdoc besok pagi, setelah diperiksa secara internal.
Menambahkan --enable-experiment=non-nullable
memperbaiki masalah. Terima kasih atas bantuan Anda.