Skip to content
This repository has been archived by the owner on Oct 28, 2024. It is now read-only.

A lot of type instablities #5

Open
ChenNingCong opened this issue May 18, 2023 · 0 comments
Open

A lot of type instablities #5

ChenNingCong opened this issue May 18, 2023 · 0 comments

Comments

@ChenNingCong
Copy link
Contributor

I am not joking.
I recommend you to use my SimpleTypeChecker.jl to scan your files, which can capture typing error more easily.

  1. Declare global variables in const.jl as const
    white_keys, black_keys should be declared with const xxx = .... Otherwise they are inferred as Any because they can be assigned with arbitrary values. This impacts a lot of functions.
  2. Reduce unnecessary use of .... Mostly of time, there is no necessary to convert an iterator to a Vector, because it supports iterator protocol.
  3. findfirst at const.jl:335 return Union{Nothing, ...}. All find functions return Union..., it's a good habit to check nothing and prevent usage of a Union{Nothing}
  4. In const.jl, const Fingering = SortedDict{Note, Finger} is an abstract type.
    Defined it as const Fingering = SortedDict{Note, Finger, Base.Order.ForwardOrdering}
  5. In split.jl:77, split_length = ceil(notes_length / threads_num), ceil returns a Floating Number. You need to cast it to a Integer. Because it's reassigned with an Integer in the following code.

If you are unsure of what I have just said, please commit in this issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant