Pre-release 0.0.6 - #152
Open
ryanwilsond wants to merge 15 commits into
Open
Conversation
* start on interfaces * fixed null equality bug * small bug fixes * user defined conversion checking * work on interfaces * work on interfaces * work on interfaces * work on interfaces * bug fixing * bug fixing * multiline strings * extern blocks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This pre-release focuses on interfaces and improved templates.
Language Changes
System.ValueTuple<T1,...>types are now treated like native tuplesAttributeUsageattribute to specify what symbols an attribute can be applied toconstexprlocal and field initializers (i.e. something likeconstexpr int a = $Func();is now allowed)System.Collections.Generic.IEnumerable<T>orSystem.Collections.IEnumerableif compiling with .NET assembliesthrowexpressions can now derive fromSystem.Exceptionif compiling with .NET assembliesMustUseReturnValueattribute that errs at call sites ignoring method return valueDllImportattribute is only typed once per library instead of per memberBuffer<T>.Length"property" instead of usingLowLevel.Length<type TElem>(Buffer<TElem>)Buffer<int> a = {1, 2, 3}; int b = a.Length;is nullorisnt nullon operands of non-nullable typesStandard Library Changes
!for types for clarity to readersStringclass:static bool! Contains(string! text, string! substring)CLI Changes
--versionnow shows installed directory of compilerbuildandruncommands now treat unhandled arguments as arguments passed to the build script-f <path>/--file <path>option must be usedBuild Script API Changes
Builder.AddRefandBuilder.AddDepwill fallback to searching PATH environment variable if the given path does not otherwise existBuildfunction can now optionally acceptBuffer<string>orstring[]arguments passed from the command-line (e.g.buckle build arg1 arg2)Bug Fixes
constcan now call their own local functions without errconst ref constmodifiers nowdefaultliteralvoid, cannot define an identity conversion, etc.)usingaliases now honor nullable annotations--evaluateKnown Issues
a is int b && b == 3Other