2012-01-25 24 views
7

Đơn vị này không thể biên dịch trong XE2 Update 3 với lỗi "Lỗi Nội bộ: SY6315". Trong XE không có vấn đề như vậy.Lỗi lạ với các phương thức ẩn danh trong phần 'khởi tạo'

unit Test; 

interface 

uses 
    SysUtils; 

var 
    Proc: TProc; 

implementation 

initialization 
    Proc := procedure 
    var ByteArr: array of Byte; 
    begin 
     SetLength(ByteArr, 10); 
    end; 

end. 

Có ai có bất kỳ kinh nghiệm nào về vấn đề này không?

Cập nhật: Tôi đã gửi báo cáo QC: QC#102888.

+5

lỗi nội bộ không nên bề mặt, bạn nên báo cáo này để http://qc.embarcadero.com. –

Trả lời

8

Trông giống như một lỗi biên dịch, đây là một cách giải quyết bằng TBytes

Proc := procedure 
    var 
    ByteArr: TBytes; 
    begin 
     SetLength(ByteArr, 10); 
    end; 
+3

+ 1, câu trả lời hay, hey, làm thế nào bạn tìm ra điều đó? kinh nghiệm đơn giản? – PresleyDias

+0

Bạn có thử nghiệm nếu sử dụng một kiểu khai báo khác cho 'mảng byte' hoạt động không? Nếu vậy, chỉ ra lỗi xử lý các loại tại chỗ trên các phương thức ẩn danh. –

Các vấn đề liên quan