Dartdoc: 2 المجال المتأخر من نفس النوع يؤدي إلى الخطأ

تم إنشاؤها على ٢٤ يوليو ٢٠٢٠  ·  17تعليقات  ·  مصدر: dart-lang/dartdoc

مع حقلين متأخرين من نفس النوع مثل الكود التالي:

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.

مع حقل واحد متأخر فقط لا تظهر مشكلة.

P1 bug

ال 17 كومينتر

FWIW تمنع هذه المشكلة ترحيل الرفرفة إلى nullsafety.

أين رمز تعبيري الوجه المحرج ... يا له من خطأ غريب. سوف أنظر إلى هذا اليوم.

لا يرى dartdoc أن مصدرك قد اشترك في ميزة "null-safety". هناك 17 سببًا قد يكون هذا ، هاها. هل يمكنك التحقق مما يلي:

  1. هل تم اختيار الحزمة في Null-Safety عبر قيود SDK؟ أعتقد أن هذا قد يتضمن 2.9 _or_ 2.10 اعتمادًا على إصدار Dart الذي تستخدمه.
  2. هل تم اختيار الحزمة في Null-Safety عبر analysis_options؟
analyzer:
  enable-experiment:
    - non-nullable
  1. هل تقوم بتشغيل dartdoc مع تجربة 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 إصلاح المشكلة. شكرا لمساعدتك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات