-
Notifications
You must be signed in to change notification settings - Fork 71
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
base: master
Are you sure you want to change the base?
Generics take2 #1294
Commits on Nov 1, 2021
-
Configuration menu - View commit details
-
Copy full SHA for ce133b9 - Browse repository at this point
Copy the full SHA ce133b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 368e90e - Browse repository at this point
Copy the full SHA 368e90eView commit details
Commits on Nov 4, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 5c4344d - Browse repository at this point
Copy the full SHA 5c4344dView commit details
Commits on Nov 5, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 64fb221 - Browse repository at this point
Copy the full SHA 64fb221View commit details
Commits on Nov 11, 2021
-
Configuration menu - View commit details
-
Copy full SHA for d521be5 - Browse repository at this point
Copy the full SHA d521be5View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for d431fc2 - Browse repository at this point
Copy the full SHA d431fc2View commit details
Commits on Dec 3, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 32d16fc - Browse repository at this point
Copy the full SHA 32d16fcView commit details
Commits on Dec 17, 2021
-
Configuration menu - View commit details
-
Copy full SHA for b0d46a0 - Browse repository at this point
Copy the full SHA b0d46a0View commit details
Commits on Feb 11, 2022
-
Additional changes. Mostly code complete, though not working.
Unit tests fail pretty hard, still needs debugging.
Configuration menu - View commit details
-
Copy full SHA for bcaf404 - Browse repository at this point
Copy the full SHA bcaf404View commit details -
Configuration menu - View commit details
-
Copy full SHA for edc959c - Browse repository at this point
Copy the full SHA edc959cView commit details
Commits on Feb 13, 2022
-
Configuration menu - View commit details
-
Copy full SHA for b737796 - Browse repository at this point
Copy the full SHA b737796View commit details
Commits on Feb 25, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 958a03b - Browse repository at this point
Copy the full SHA 958a03bView commit details
Commits on Feb 27, 2022
-
Configuration menu - View commit details
-
Copy full SHA for e3825c1 - Browse repository at this point
Copy the full SHA e3825c1View commit details
Commits on Mar 3, 2022
-
Configuration menu - View commit details
-
Copy full SHA for ee55d6a - Browse repository at this point
Copy the full SHA ee55d6aView commit details
Commits on Mar 21, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 239a132 - Browse repository at this point
Copy the full SHA 239a132View commit details
Commits on Mar 23, 2022
-
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.
Configuration menu - View commit details
-
Copy full SHA for 592ab47 - Browse repository at this point
Copy the full SHA 592ab47View commit details -
Configuration menu - View commit details
-
Copy full SHA for 921a0c8 - Browse repository at this point
Copy the full SHA 921a0c8View commit details
Commits on Mar 24, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 0465349 - Browse repository at this point
Copy the full SHA 0465349View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6121779 - Browse repository at this point
Copy the full SHA 6121779View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 036b753 - Browse repository at this point
Copy the full SHA 036b753View commit details -
Configuration menu - View commit details
-
Copy full SHA for ba7ebd5 - Browse repository at this point
Copy the full SHA ba7ebd5View commit details
Commits on Mar 25, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 668e37e - Browse repository at this point
Copy the full SHA 668e37eView commit details
Commits on Mar 29, 2022
-
Configuration menu - View commit details
-
Copy full SHA for ab14f00 - Browse repository at this point
Copy the full SHA ab14f00View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5d5ba81 - Browse repository at this point
Copy the full SHA 5d5ba81View commit details -
Configuration menu - View commit details
-
Copy full SHA for 809a724 - Browse repository at this point
Copy the full SHA 809a724View commit details
Commits on Mar 30, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 8ca78e4 - Browse repository at this point
Copy the full SHA 8ca78e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 89aba77 - Browse repository at this point
Copy the full SHA 89aba77View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a09ff0 - Browse repository at this point
Copy the full SHA 7a09ff0View commit details
Commits on Mar 31, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 23cd8f5 - Browse repository at this point
Copy the full SHA 23cd8f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for c68d103 - Browse repository at this point
Copy the full SHA c68d103View commit details -
Configuration menu - View commit details
-
Copy full SHA for b70b209 - Browse repository at this point
Copy the full SHA b70b209View commit details -
Configuration menu - View commit details
-
Copy full SHA for b9aae16 - Browse repository at this point
Copy the full SHA b9aae16View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 265949e - Browse repository at this point
Copy the full SHA 265949eView commit details
Commits on Apr 1, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 32f2d4a - Browse repository at this point
Copy the full SHA 32f2d4aView commit details -
Merge branch 'genericsTake2' of github.com:EngineHub/CommandHelper in…
…to genericsTake2
Configuration menu - View commit details
-
Copy full SHA for f861f77 - Browse repository at this point
Copy the full SHA f861f77View commit details -
Configuration menu - View commit details
-
Copy full SHA for 24117ca - Browse repository at this point
Copy the full SHA 24117caView commit details
Commits on Apr 2, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 26151e4 - Browse repository at this point
Copy the full SHA 26151e4View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for cde5f4c - Browse repository at this point
Copy the full SHA cde5f4cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a6bd55 - Browse repository at this point
Copy the full SHA 0a6bd55View commit details -
Configuration menu - View commit details
-
Copy full SHA for f40c67d - Browse repository at this point
Copy the full SHA f40c67dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2510cf2 - Browse repository at this point
Copy the full SHA 2510cf2View commit details
Commits on Apr 3, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 5b645c1 - Browse repository at this point
Copy the full SHA 5b645c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8438464 - Browse repository at this point
Copy the full SHA 8438464View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9aab1c1 - Browse repository at this point
Copy the full SHA 9aab1c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4327ee0 - Browse repository at this point
Copy the full SHA 4327ee0View commit details -
Configuration menu - View commit details
-
Copy full SHA for aa5bc2c - Browse repository at this point
Copy the full SHA aa5bc2cView commit details
Commits on Apr 4, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 6ba3f82 - Browse repository at this point
Copy the full SHA 6ba3f82View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6dc811d - Browse repository at this point
Copy the full SHA 6dc811dView commit details -
Configuration menu - View commit details
-
Copy full SHA for ee4379c - Browse repository at this point
Copy the full SHA ee4379cView commit details
Commits on Apr 5, 2022
-
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.
Configuration menu - View commit details
-
Copy full SHA for 5bc8cc0 - Browse repository at this point
Copy the full SHA 5bc8cc0View commit details -
Configuration menu - View commit details
-
Copy full SHA for ab74ad2 - Browse repository at this point
Copy the full SHA ab74ad2View commit details -
Add more AggressiveDeprecations.
Also, add more human readable data to the annotation, to help remember when it was added.
Configuration menu - View commit details
-
Copy full SHA for 205e3b3 - Browse repository at this point
Copy the full SHA 205e3b3View commit details
Commits on Apr 6, 2022
-
Configuration menu - View commit details
-
Copy full SHA for ef358b7 - Browse repository at this point
Copy the full SHA ef358b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for f18e0f8 - Browse repository at this point
Copy the full SHA f18e0f8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 37d1ed4 - Browse repository at this point
Copy the full SHA 37d1ed4View commit details -
Configuration menu - View commit details
-
Copy full SHA for c8221fa - Browse repository at this point
Copy the full SHA c8221faView commit details -
Configuration menu - View commit details
-
Copy full SHA for f0faa0b - Browse repository at this point
Copy the full SHA f0faa0bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5516d5e - Browse repository at this point
Copy the full SHA 5516d5eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 722495f - Browse repository at this point
Copy the full SHA 722495fView commit details
Commits on Apr 7, 2022
-
Configuration menu - View commit details
-
Copy full SHA for e42666e - Browse repository at this point
Copy the full SHA e42666eView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 8ad1434 - Browse repository at this point
Copy the full SHA 8ad1434View commit details
Commits on Apr 10, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 85ed2f4 - Browse repository at this point
Copy the full SHA 85ed2f4View commit details
Commits on Apr 11, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 9900ee1 - Browse repository at this point
Copy the full SHA 9900ee1View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 0e3667f - Browse repository at this point
Copy the full SHA 0e3667fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 082cd9b - Browse repository at this point
Copy the full SHA 082cd9bView commit details
Commits on Apr 12, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 28a037a - Browse repository at this point
Copy the full SHA 28a037aView commit details -
Configuration menu - View commit details
-
Copy full SHA for f658e57 - Browse repository at this point
Copy the full SHA f658e57View commit details -
Configuration menu - View commit details
-
Copy full SHA for f091c99 - Browse repository at this point
Copy the full SHA f091c99View commit details -
Configuration menu - View commit details
-
Copy full SHA for 909efe8 - Browse repository at this point
Copy the full SHA 909efe8View commit details -
Configuration menu - View commit details
-
Copy full SHA for c6834b2 - Browse repository at this point
Copy the full SHA c6834b2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1726fd2 - Browse repository at this point
Copy the full SHA 1726fd2View commit details
Commits on Apr 13, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 0d78170 - Browse repository at this point
Copy the full SHA 0d78170View commit details -
Configuration menu - View commit details
-
Copy full SHA for 94910ec - Browse repository at this point
Copy the full SHA 94910ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a2b7d3 - Browse repository at this point
Copy the full SHA 0a2b7d3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a9ffe8 - Browse repository at this point
Copy the full SHA 7a9ffe8View commit details -
Configuration menu - View commit details
-
Copy full SHA for b0af7fd - Browse repository at this point
Copy the full SHA b0af7fdView commit details
Commits on Apr 14, 2022
-
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.
Configuration menu - View commit details
-
Copy full SHA for 8f1a8a0 - Browse repository at this point
Copy the full SHA 8f1a8a0View commit details
Commits on Apr 19, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 7e00c25 - Browse repository at this point
Copy the full SHA 7e00c25View commit details -
Configuration menu - View commit details
-
Copy full SHA for f0f9a6c - Browse repository at this point
Copy the full SHA f0f9a6cView commit details
Commits on Apr 22, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 3cd8334 - Browse repository at this point
Copy the full SHA 3cd8334View commit details -
Configuration menu - View commit details
-
Copy full SHA for d376ad5 - Browse repository at this point
Copy the full SHA d376ad5View commit details
Commits on Apr 27, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 8d15bee - Browse repository at this point
Copy the full SHA 8d15beeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3817ae9 - Browse repository at this point
Copy the full SHA 3817ae9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5fc3192 - Browse repository at this point
Copy the full SHA 5fc3192View commit details -
Configuration menu - View commit details
-
Copy full SHA for 48d21b6 - Browse repository at this point
Copy the full SHA 48d21b6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 641a316 - Browse repository at this point
Copy the full SHA 641a316View commit details -
Configuration menu - View commit details
-
Copy full SHA for 031e0ad - Browse repository at this point
Copy the full SHA 031e0adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 97ff952 - Browse repository at this point
Copy the full SHA 97ff952View commit details -
Configuration menu - View commit details
-
Copy full SHA for 957f176 - Browse repository at this point
Copy the full SHA 957f176View commit details -
Configuration menu - View commit details
-
Copy full SHA for 535f9bc - Browse repository at this point
Copy the full SHA 535f9bcView commit details
Commits on Apr 28, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 44fe145 - Browse repository at this point
Copy the full SHA 44fe145View commit details
Commits on May 5, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 8488d39 - Browse repository at this point
Copy the full SHA 8488d39View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1131858 - Browse repository at this point
Copy the full SHA 1131858View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2946044 - Browse repository at this point
Copy the full SHA 2946044View commit details
Commits on May 6, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 937576b - Browse repository at this point
Copy the full SHA 937576bView commit details
Commits on May 7, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 0f91e3f - Browse repository at this point
Copy the full SHA 0f91e3fView commit details
Commits on May 8, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 199b33b - Browse repository at this point
Copy the full SHA 199b33bView commit details
Commits on Jun 15, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 78eb89a - Browse repository at this point
Copy the full SHA 78eb89aView commit details
Commits on Jul 5, 2022
-
Configuration menu - View commit details
-
Copy full SHA for f5aeffb - Browse repository at this point
Copy the full SHA f5aeffbView commit details
Commits on Jan 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 1cade80 - Browse repository at this point
Copy the full SHA 1cade80View commit details
Commits on Sep 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0f3dc21 - Browse repository at this point
Copy the full SHA 0f3dc21View commit details