Dartdoc: 2 bidang terlambat dari jenis yang sama menyebabkan kesalahan

Dibuat pada 24 Jul 2020  ·  17Komentar  ·  Sumber: dart-lang/dartdoc

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.

P1 bug

Semua 17 komentar

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:

  1. Apakah paket diikutsertakan ke dalam null-safety melalui batasan SDK? Saya pikir ini mungkin melibatkan 2,9 _atau_ 2,10 tergantung pada versi Dart yang Anda gunakan.
  2. Apakah paket diikutsertakan ke dalam null-safety melalui analysis_options?
analyzer:
  enable-experiment:
    - non-nullable
  1. Apakah Anda menjalankan dartdoc dengan eksperimen 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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat