مع حقلين متأخرين من نفس النوع مثل الكود التالي:
class A {
late double a;
late double b;
}
خطأ في الإخراج 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.
مع حقل واحد متأخر فقط لا تظهر مشكلة.
FWIW تمنع هذه المشكلة ترحيل الرفرفة إلى nullsafety.
أين رمز تعبيري الوجه المحرج ... يا له من خطأ غريب. سوف أنظر إلى هذا اليوم.
لا يرى dartdoc أن مصدرك قد اشترك في ميزة "null-safety". هناك 17 سببًا قد يكون هذا ، هاها. هل يمكنك التحقق مما يلي:
analyzer:
enable-experiment:
- non-nullable
null-safety
؟ إذا كنت تستدعيها من خلال الحانة ، فمن المحتمل أنها شيء مثل pub global run dartdoc --enable-experiment=null-safety
.نعم لدي حزمة بسيطة مع
//------ 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;
}
وقمت بتشغيل dartdoc --enable-experiment=non-nullable
(نفس الخطأ مع dartdoc --enable-experiment=null-safety
).
يمكنك أن ترى الفشل في رفرفة العلاقات العامة الخاصة بي https://cirrus-ci.com/task/4975447580606464؟
srawlins هل تمكنت من إعادة
FWIW تمنع هذه المشكلة ترحيل الرفرفة إلى nullsafety
هل هذا يمنع الهجرة؟ منع بعض جوانب ذلك؟ هل لديك حل بديل على المدى القريب؟
لم أتمكن من إعادة إنتاج هذا عند الاشتراك في null Safety عبر pubspec:
environment:
sdk: '>=2.9.0-18.0 <2.9.0'
وخيارات التحليل:
analyzer:
enable-experiment:
- non-nullable
واستخدام dartdoc على رأسه ، وتشغيل dart
على رأسه:
~/code/dart-sdk/sdk/xcodebuild/ReleaseX64/dart-sdk/bin/dart
--enable-experiment=non-nullable
../dart-dartdoc/bin/dartdoc.dart
--enable-experiment=non-nullable
أنا بصدد إطلاق سراح dartdoc ، منذ فترة. سأتحقق أيضًا من أحدث إصدار.
هل هذا يمنع الهجرة؟ منع بعض جوانب ذلك؟
نعم لأن الوظيفة docs-linux
دائمًا ما تكون فاسدة. (انظر flutter / flutter # 62157)
هل لديك حل بديل على المدى القريب؟
إزالة كل late
ليس حلاً حقيقياً لأنه سيحتاج إلى إضافة !
و ?
كل مكان :-(
تذكر الوظيفة الفاشلة dartdoc version: 0.32.1
. هل يمكنك التحقق من أن هذا الإصدار يتسبب في حدوث المشكلة من جانبك؟ إذا رأيت المشكلة ، فقد يعني ذلك أنه تم إصلاحها في مرحلة ما وأن الإصدار التالي سيحل المشكلة.
مسكتك. كنت آمل أن نتمكن من تمرير بعض الأعلام إلى dartdoc (أو الأعلام التي يمكن أن نحذفها) والتي ستتيح لنا المضي قدمًا في هذه الأثناء.
srawlins - أعتقد أن الإصلاح هنا سيكون مهمًا للسماح لعملية ترحيل nnbd بالتقدم بشكل عام.
نعم ، يبدو أنه يمكنني إعادة إنتاج هذا على 0.32.1 ، باستخدام Dart 2.10.0-dev. شيء ما. هناك 0.32.2 لم يتم إصدارها والتي قد تعمل. سأحاول ذلك أيضًا.
يمكنني إعادة الإنتاج باستخدام pub global run
على علامة v0.32.2 git وعلى المستوى الرئيسي.أنا أعمل على البحث عن سبب كون pub
هو الجاني.
اخدش ذلك. كان لدي // @dart=2.9
طائشًا في ملف الاختبار الخاص بي (وهو الآن _ منخفض جدًا_ للإشارة إلى أمان Null).
لا يمكنني إعادة إنتاج الخطأ باستخدام pub run dartdoc
على dartdoc 0.32.1 ، ولا في فرع git v0.32.2 ، ولا في الرأس.
FWIW ، لا أرى --enable-experiment=non-nullable
في استدعاء dartdoc على روبوت linux المرتبط.
لا أرى --enable-experiment=non-nullable
في رابط cirrus الخاص بك ، ولا في رابط cirrus الأخير في العلاقات العامة الخاصة بك.
مسكة جيدة! يجب أن يحل المشكلة.
(لكن محليًا لا أعرف حقًا ما فعلته لرؤية هذه المشكلة)
دعنا نعرف اذا كان هذا يعمل أخطط لنشر dartdoc صباح الغد ، بعد أن يتم فحصها داخليًا.
أدت إضافة --enable-experiment=non-nullable
إصلاح المشكلة. شكرا لمساعدتك.