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

Generics take2 #1294

Open
wants to merge 101 commits into
base: master
Choose a base branch
from
Open

Generics take2 #1294

wants to merge 101 commits into from

Commits on Nov 1, 2021

  1. Configuration menu
    Copy the full SHA
    ce133b9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    368e90e View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2021

  1. Configuration menu
    Copy the full SHA
    5c4344d View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2021

  1. Configuration menu
    Copy the full SHA
    64fb221 View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2021

  1. Compiles again

    LadyCailin committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    d521be5 View commit details
    Browse the repository at this point in the history
  2. Move instanceof logic to InstanceofUtil + Fix SA instanceof reference (

    …#1296)
    
    - Move instanceof logic from SA to InstanceofUtil. The new generics check here is questionable as the actual generic geclaration from instanceofThis is never used, and some other LeftHandGenericUse is passed in instead. This could use a revision that is out of scope for this commit.
    - Fix SA instanceof `(CClassType, CClassType)` method signature being redirected to the `(Mixed, CClassType)` instanceof method, effectively making all types `ClassType` instead of their actual type.
    
    Co-authored-by: LadyCailin <[email protected]>
    Pieter12345 and LadyCailin authored Nov 11, 2021
    Configuration menu
    Copy the full SHA
    d431fc2 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2021

  1. Configuration menu
    Copy the full SHA
    32d16fc View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2021

  1. Configuration menu
    Copy the full SHA
    b0d46a0 View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2022

  1. Additional changes. Mostly code complete, though not working.

    Unit tests fail pretty hard, still needs debugging.
    LadyCailin committed Feb 11, 2022
    Configuration menu
    Copy the full SHA
    bcaf404 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    edc959c View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2022

  1. Configuration menu
    Copy the full SHA
    b737796 View commit details
    Browse the repository at this point in the history

Commits on Feb 25, 2022

  1. Configuration menu
    Copy the full SHA
    958a03b View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2022

  1. Configuration menu
    Copy the full SHA
    e3825c1 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2022

  1. typeof needs Environment

    LadyCailin committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    ee55d6a View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2022

  1. Configuration menu
    Copy the full SHA
    239a132 View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2022

  1. Add LeftHandSideType, and rework generics to fix all unit tests.

    This completes the generics backend, though it will be a while before
    the frontend part is ready.
    
    LeftHandSideType is a class that is similar to CClassType, but can
    contain left hand side semantics. Particularly, it can contain type
    unions, and LHS generic statements. As all CClassTypes are valid LHS
    identifiers though, tight coupling has been added to convert from
    CClassType to LHS notation easily. In general though, most parts of the
    type system work with LHS types now, though future use cases (such as
    the new keyword) will specifically work only with CClassTypes. Both the
    runtime and the SA framework have been adjusted to use LHS types now
    instead.
    LadyCailin committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    592ab47 View commit details
    Browse the repository at this point in the history
  2. Fix tests

    LadyCailin committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    921a0c8 View commit details
    Browse the repository at this point in the history

Commits on Mar 24, 2022

  1. Configuration menu
    Copy the full SHA
    0465349 View commit details
    Browse the repository at this point in the history
  2. Fix player_command bind

    LadyCailin committed Mar 24, 2022
    Configuration menu
    Copy the full SHA
    6121779 View commit details
    Browse the repository at this point in the history
  3. Use a static cache for native classes

    Also, add back no-env methods in Static for now. These are deprecated,
    but will give a phase in period for extensions to adapt, rather than
    having a hard break right now, while the underlying thing (user objects)
    isn't ready yet anyways.
    LadyCailin committed Mar 24, 2022
    Configuration menu
    Copy the full SHA
    036b753 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ba7ebd5 View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2022

  1. Configuration menu
    Copy the full SHA
    668e37e View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2022

  1. Configuration menu
    Copy the full SHA
    ab14f00 View commit details
    Browse the repository at this point in the history
  2. Fix javadoc

    LadyCailin committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    5d5ba81 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    809a724 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2022

  1. Configuration menu
    Copy the full SHA
    8ca78e4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    89aba77 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7a09ff0 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2022

  1. Fix null assignments

    LadyCailin committed Mar 31, 2022
    Configuration menu
    Copy the full SHA
    23cd8f5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c68d103 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b70b209 View commit details
    Browse the repository at this point in the history
  4. Bugfixes

    LadyCailin committed Mar 31, 2022
    Configuration menu
    Copy the full SHA
    b9aae16 View commit details
    Browse the repository at this point in the history
  5. Fix and() function signature

    Fix `and()` signature to remain compatible with its optimization. Ideally, we would require at least two arguments in `and()` and optimize a single-value `and()` to a `cast(<arg>, Booleanish)`, but such a function does not yet exist.
    Pieter12345 committed Mar 31, 2022
    Configuration menu
    Copy the full SHA
    265949e View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2022

  1. Configuration menu
    Copy the full SHA
    32f2d4a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f861f77 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    24117ca View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2022

  1. Configuration menu
    Copy the full SHA
    26151e4 View commit details
    Browse the repository at this point in the history
  2. Pass GenericParameters in to functions.

    This will be used in for instnace `array<string>("asdf", "fdsa")` to
    hold the `string` value. Most functions won't use this, but there's no
    other good way to shove this into existing arguments. Runtime
    compatibility has been kept for existing extensions, but those with the @OverRide
    annotation will fail on next build.
    LadyCailin committed Apr 2, 2022
    Configuration menu
    Copy the full SHA
    cde5f4c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0a6bd55 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f40c67d View commit details
    Browse the repository at this point in the history
  5. CS

    LadyCailin committed Apr 2, 2022
    Configuration menu
    Copy the full SHA
    2510cf2 View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2022

  1. Configuration menu
    Copy the full SHA
    5b645c1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8438464 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9aab1c1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4327ee0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    aa5bc2c View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2022

  1. Configuration menu
    Copy the full SHA
    6ba3f82 View commit details
    Browse the repository at this point in the history
  2. Remove erroneous code

    LadyCailin committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    6dc811d View commit details
    Browse the repository at this point in the history
  3. Better error message

    LadyCailin committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    ee4379c View commit details
    Browse the repository at this point in the history

Commits on Apr 5, 2022

  1. Resolve typename before returning up further.

    This is required for functions that return a typename, because the
    return type of `T get_value<T>(...)` is not actually `T`, it's whatever
    type the user specified (or implied) in the call. So
    `get_value<int>(...)`'s return type is int, which is what the
    typechecking needs.
    
    This is currently supported through signatures, but was not being
    resolved properly before returning up the stack.
    LadyCailin committed Apr 5, 2022
    Configuration menu
    Copy the full SHA
    5bc8cc0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ab74ad2 View commit details
    Browse the repository at this point in the history
  3. Add more AggressiveDeprecations.

    Also, add more human readable data to the annotation, to help remember
    when it was added.
    LadyCailin committed Apr 5, 2022
    Configuration menu
    Copy the full SHA
    205e3b3 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2022

  1. Configuration menu
    Copy the full SHA
    ef358b7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f18e0f8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    37d1ed4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c8221fa View commit details
    Browse the repository at this point in the history
  5. Oops

    LadyCailin committed Apr 6, 2022
    Configuration menu
    Copy the full SHA
    f0faa0b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5516d5e View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    722495f View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2022

  1. cleanup

    LadyCailin committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    e42666e View commit details
    Browse the repository at this point in the history
  2. Allow "teeing up" of aggressive deprecations.

    The annotation now allows for a deprecation version field, which, if the
    current version is less than that, will cause it to do nothing. Then,
    when the version is bumped up, it will automatically start to be
    aggressively deprecated. This allows for deprecations to be made at any
    point in the release cycle, without actually changing the behavior, but
    then on version bump, all the deprecations automatically take effect.
    LadyCailin committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    8ad1434 View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2022

  1. Configuration menu
    Copy the full SHA
    85ed2f4 View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2022

  1. CS

    LadyCailin committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    9900ee1 View commit details
    Browse the repository at this point in the history
  2. Add cast().

    Also, prepopulate inferred function generics if they weren't explicitely
    provided. This is only available with static analysis, but allows for
    generic parameters to start being used in some scenarios.
    LadyCailin committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    0e3667f View commit details
    Browse the repository at this point in the history
  3. CS

    LadyCailin committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    082cd9b View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2022

  1. Configuration menu
    Copy the full SHA
    28a037a View commit details
    Browse the repository at this point in the history
  2. Add additional unit tests

    LadyCailin committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    f658e57 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f091c99 View commit details
    Browse the repository at this point in the history
  4. Missed a change

    LadyCailin committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    909efe8 View commit details
    Browse the repository at this point in the history
  5. Use the correct SA object

    LadyCailin committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    c6834b2 View commit details
    Browse the repository at this point in the history
  6. cs

    LadyCailin committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    1726fd2 View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2022

  1. Configuration menu
    Copy the full SHA
    0d78170 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    94910ec View commit details
    Browse the repository at this point in the history
  3. cs

    LadyCailin committed Apr 13, 2022
    Configuration menu
    Copy the full SHA
    0a2b7d3 View commit details
    Browse the repository at this point in the history
  4. Fix centry typechecking

    LadyCailin committed Apr 13, 2022
    Configuration menu
    Copy the full SHA
    7a9ffe8 View commit details
    Browse the repository at this point in the history
  5. cs

    LadyCailin committed Apr 13, 2022
    Configuration menu
    Copy the full SHA
    b0af7fd View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2022

  1. Make constants their actual type in strict mode, auto otherwise.

    This changes the declared type (not to be confused with the actual type)
    of constants to auto in non-strict mode, and their actual types in
    strict mode. This is necessary, because currently, code such as `'123' >
    10` is supported, and needs to continue to be supported into the future.
    However, adding typechecking to functions will start to break this code,
    which is undesireable. Therefore, in non-strict mode, constants will be
    declared as type auto.
    
    Additionally, for functions that end up matching multiple signatures,
    instead of returning the type union for possible return values, it now
    returns auto, if any of the parameters are auto. This prevents further
    type errors up the chain when signatures might be ambiguous. For
    instance, if we have both array func(int) and int func(string), then in
    non-strict mode, `func(@auto)` would be ambiguous. However, since the
    parameter is auto, the user has already indicated that they are ok with
    deferring typechecking until runtime anyways, so we prevent requiring a
    cast in this case by returning auto, so `array @A = func(@auto)` will
    also continue to work with no casts. This behavior is the same in both
    strict and non-strict mode, but is more likely to be triggered in
    non-strict mode due to the fact that constants are auto.
    
    A few bugs were fixed with strict mode and centry, as well as when
    unknonwn functions are found in certain cases.
    LadyCailin committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    8f1a8a0 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2022

  1. Configuration menu
    Copy the full SHA
    7e00c25 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f0f9a6c View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2022

  1. dev drop

    LadyCailin committed Apr 22, 2022
    Configuration menu
    Copy the full SHA
    3cd8334 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d376ad5 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2022

  1. Configuration menu
    Copy the full SHA
    8d15bee View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3817ae9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5fc3192 View commit details
    Browse the repository at this point in the history
  4. Use proper URL escaping

    LadyCailin committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    48d21b6 View commit details
    Browse the repository at this point in the history
  5. Revert "Use proper URL escaping"

    This reverts commit 48d21b6.
    LadyCailin committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    641a316 View commit details
    Browse the repository at this point in the history
  6. Maybe fixed now

    LadyCailin committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    031e0ad View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    97ff952 View commit details
    Browse the repository at this point in the history
  8. Decode that shit

    LadyCailin committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    957f176 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    535f9bc View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2022

  1. Configuration menu
    Copy the full SHA
    44fe145 View commit details
    Browse the repository at this point in the history

Commits on May 5, 2022

  1. Configuration menu
    Copy the full SHA
    8488d39 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1131858 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2946044 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2022

  1. Configuration menu
    Copy the full SHA
    937576b View commit details
    Browse the repository at this point in the history

Commits on May 7, 2022

  1. Configuration menu
    Copy the full SHA
    0f91e3f View commit details
    Browse the repository at this point in the history

Commits on May 8, 2022

  1. Configuration menu
    Copy the full SHA
    199b33b View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2022

  1. Configuration menu
    Copy the full SHA
    78eb89a View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2022

  1. Configuration menu
    Copy the full SHA
    f5aeffb View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2023

  1. Configuration menu
    Copy the full SHA
    1cade80 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2023

  1. Configuration menu
    Copy the full SHA
    0f3dc21 View commit details
    Browse the repository at this point in the history