[Compiler][Dart] file-level option evolving = false is ignored, causing a cross-language wire-format mismatch

Đang mở
#4,158 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@ayush00git đang làm issue này rồi.

Từ ngày 9/10/2026.

  • #4159 của @ayush00git — đang mở

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
22/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
dart
Lĩnh vực
compilers

Hướng nghiên cứu

The Dart generator reads evolving only from message-level options, so the file-level option evolving = false; default never reaches it. Compare that lookup with how the Java or Go generators resolve the file-level default, then run the two-line repro schema through the Dart generator. Done means the output uses a non-evolving struct and the schema-consistent type id, matching peer languages. PR #4159 already targets this, so check it before starting.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

The Dart generator resolves the evolving option from message-level options only, while every other generator (Java, Go, Rust, C++, Swift, C#, Python, JavaScript) honors the file-level option evolving = false; default.

A schema with file-level evolving = false therefore generates @ForyStruct() (compatible/evolving struct) and TypeIds.compatibleStruct in Dart while all peer languages emit schema-consistent structs — a cross-language wire-format mismatch for the same schema.

Repro:

option evolving = false;
message User { string name = 1; }
Ngôn ngữ chính
Java
Star
4.6k
Fork
470
Merge trung bình
9 giờ 28 phút
Pull request đã merge (30 ngày)
33

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/fory

Tất cả issue của apache/fory

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.