WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content
This repository was archived by the owner on Oct 28, 2024. It is now read-only.
This repository was archived by the owner on Oct 28, 2024. It is now read-only.

A lot of type instablities #5

@ChenNingCong

Description

@ChenNingCong

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions