引用:
原帖由 sswroom 於 2021-1-23 12:11 AM 發表
我現時的compile system有做change detection,沒有修改過的檔案不會重新compile,可以節省很多compile時間
基本上汪汪呢頁code影響最大
https://github.com/SusanDoggie/Doggie/blob/main/Sources/DoggieMath/Arithmetic.swift
如果就咁寫一句複製內容到剪貼板
代碼:
let a = b * c + d * e
而呢度可能c同e係ScalarMultiplicative
b同d係ScalarMultiplicative.Scalar
但呢個ScalarMultiplicative只係generic
Swift變咗要solve呢個a係咩type果時就要睇晒所有source code有幾多個*號係食ScalarMultiplicative.Scalar同ScalarMultiplicative
然後又再睇有咩+號食兩個ScalarMultiplicative
但呢個+號係我哋自己認為係食兩個ScalarMultiplicative
Swift都係睇晒所有*號係咪最後result ScalarMultiplicative先決定到
而當然呢度個ScalarMultiplicative同ScalarMultiplicative.Scalar之間係有個constraint
基本上swift會build左個tree出嚟去solve呢行code嘅types
==================
其實汪汪果頁protocol 係寫少咗一個constraint
再寫多一個constraint會crash左swift compiler
汪汪report左個bug好多年、都仲未fix到
蘋果話再加果個constraint搞到個AST打左結所以compiler crash
[ 本帖最後由 Susan﹏汪汪 於 2021-1-23 09:23 AM 編輯 ]