Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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 join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant