-
Notifications
You must be signed in to change notification settings - Fork 480
Implement trait support - Part 2/3 - New ink! codegen #470
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
Merged
Merged
Changes from 155 commits
Commits
Show all changes
170 commits
Select commit
Hold shift + click to select a range
eea379c
[lang/codegen] initial impl of the new ink! codegen
Robbepop 8b40c4b
[lang/macro] apply rustfmt to imports
Robbepop 531a458
[lang/codegen] apply rustfmt
Robbepop 1c51a3f
[lang/ir] add ItemMod::{attrs, vis} getters
Robbepop 913c00a
[lang/codegen] make use of ir::ItemMod::{attrs, vis} in codegen
Robbepop daba548
[lang/codegen] restructure ink_lang_codegen library
Robbepop 6dba67d
[lang/codegen] appliy clippy suggestion
Robbepop 0f54f6a
[lang/ir] add Event::attrs() and ToTokens impl for EventField
Robbepop e63a246
[lang/codegen] apply rustfmt
Robbepop cb43042
[lang/codegen] implement Event code generator
Robbepop fa966ee
[lang/codegen] make use of the new Events code generator
Robbepop 22eeeaf
[lang/ir] make ir::Callable always Copy and Clone
Robbepop 0e99fcd
[lang/ir] rename CallableWithSelector::item -> callable
Robbepop b1d9e8e
[lang/ir] add Callable::kind() trait method
Robbepop 9c49c3c
[lang/codegen] add dispatch enum code generation
Robbepop f647ec5
[lang/codegen] enable dispatch code generator
Robbepop 4481eea
[lang/codegen] add generation for constructor dispatch enum
Robbepop 764ae3c
[lang/codegen] implement contract entry points
Robbepop c76a997
[lang/codegen] implement code generation for DispatchUsingMode impl
Robbepop c3ddac7
[lang/codegen] add trait impl namespaces Msg<S> and Constr<S>
Robbepop f098fc1
[lang/ir] add ir::Message::inputs_span() getter
Robbepop 9ec6063
[lang/codegen] add codegen for dispatch trait impls for ink! messages
Robbepop 859a068
[lang/codegen] plug-in dispatch trait impls code gen
Robbepop 200a555
[lang/ir] add Callable::inputs_span trait method
Robbepop 7835aec
[lang/codegen] implement dispatch trait impl codegen for ink! constru…
Robbepop 3f09405
[lang/codegen] make generate_input_bindings doc tests pass
Robbepop 5bbc695
[lang/ir] apply rustfmt
Robbepop 874f4be
[lang/codegen] fix message and constructor namespaces
Robbepop 7b15f11
[lang/ir] add {Message, Constructor}::attrs getter
Robbepop c2bd41b
[lang/codegen] implement codegen for ink! ItemImpls
Robbepop cc579ab
[lang/codegen] remove some unneeded imports for ItemImpl codegen
Robbepop 5980073
[lang/codegen] automatically import ink_lang's Env, EmitEvent and Sta…
Robbepop e6e6c89
[lang/codegen] do not generate for ink-as-dependency
Robbepop e64c319
[lang/codegen] initial impl for cross-calling codegen
Robbepop 573f129
[core] rename utils.rs -> selector.rs
Robbepop bfb1bb9
[core] add common mod for common abstractions for call and create
Robbepop 6b0d323
[core] improve ExecutionInput: add useful trait impls
Robbepop 9b7d61a
[core] refactor call builder
Robbepop 9a0f588
[core] adjust rest of ink_core to changed imports
Robbepop 540a26f
[core] implement new CreateBuilder
Robbepop 93b8b67
[core] remove old InstantiateBuilder
Robbepop b24c107
[core] remove no longer needed traits
Robbepop 5487335
[core] add eval,invoke,eval_params,invoke_params to CallBuilder
Robbepop 4ad8021
[core] apply rustfmt
Robbepop 3e355c9
[core] adjust environment to new CreateBuilder
Robbepop cf89d9c
[core] apply rustfmt
Robbepop c5b94f3
[core] move eval and invoke to CallParams
Robbepop 8c0450d
[core] adjust on-chain impl for CallBuilder
Robbepop 925ea70
[core] add explanation for the cfg
Robbepop 2c00322
[core] move instantiate to CreateParams
Robbepop 08c7e60
[core] make CreateParams getters crate private
Robbepop ffb0335
[core] rename Call -> CallParams
Robbepop d3f4062
[core] improve doc comment
Robbepop f08552e
[lang] adjust lang for new call and create builders
Robbepop f2d9625
[core] expose builder construction through build_call and build_create
Robbepop 4e2bf5b
[core] remove Default impl for empty ExecutionInput
Robbepop 91f6e01
[core] add usage examples to build_call
Robbepop 30ce8e0
[core] improve usage doc example of build_call
Robbepop 9c0cf3c
[core] improve doc tests for build_call
Robbepop 97c92f9
[core] add doc test example to build_create
Robbepop d7f7f64
Merge branch 'master' of github.com:paritytech/ink into robin-impleme…
Robbepop d5e6450
[core] fix compilation after merge
Robbepop 579dc7a
[metadata] make constuctor and message name an array and add is_payable
Robbepop a354578
[lang/codegen] add metadata code generation
Robbepop e973b43
[lang/ir] implement lint to ensure there are no __ink_ prefixed ident…
Robbepop c401ecd
[metadata] make serialized Layout fields camelCase
Robbepop d8f8ab0
[lang/ir, lang/macro] apply rustfmt
Robbepop 5688c50
[lang/ir] initial implementation of #[ink::trait_definition] proc. macro
Robbepop a5f92ce
[lang/ir] re-export InkTrait
Robbepop 343d291
[lang/macro] create new proc. macro for ink! trait definitions
Robbepop 1097abd
[lang/ir] improve error messages of #[ink::trat_definition] a bit
Robbepop ae8d786
[lang/ir] add many more unit tests
Robbepop c48ac10
[lang/ir] apply rustfmt
Robbepop c918879
[lang/ir] fixed spelling bug
Robbepop 27788d6
[lang/ir] fix handling or errorneous Self receiver in ink! constructors
Robbepop 7aad691
[lang/ir] add bunch of new unit tests for #[ink::trait_definition] pr…
Robbepop da1d910
[lang/ir] add some more unit tests
Robbepop 57a1c57
[lang/ir] implement checks for invalid ink! attributes
Robbepop 5b99622
[lang/ir] add unit tests for invalid ink! attributes
Robbepop 513db64
[lang/ir] use syn's builtin receiver getter
Robbepop 592a082
[lang/ir] add iterators for ink! trait definition
Robbepop b760238
[lang/ir] add getters for generic info of ink! trait definition
Robbepop fbfad71
[lang/ir] fix a unit test testing too much
Robbepop 0d43c1c
[lang/ir] deny ink! trait definitions with supertraits
Robbepop 70a81fe
[lang/ir] add verify_hash functions
Robbepop 55c089e
[lang/ir] simplify ink! trait verification hash
Robbepop 7004306
[lang/ir] add InkTrait::attrs() getter
Robbepop db67b78
[lang/ir] add re-exports for most InkTrait types
Robbepop 41c3a81
[lang/codegen] initial implementation of #[ink::trait_definition] cod…
Robbepop bc62ccd
[lang/codegen] refine codegen for ink! trait definitions
Robbepop a1182ce
[lang, lang/codegen] use correct trait for ink! trait definition chec…
Robbepop 2688d13
[lang/codegen] rework crate exposed API
Robbepop c109f38
[lang/ir] fix return value of ir::InkTrait::new
Robbepop 4694a80
[lang/macro] update codegen driver for ink! trait definition
Robbepop 5505e8a
[core, lang/codegen, lang/ir, metadata] apply clippy suggestions
Robbepop 732a6d9
[lang/codegen, lang/ir, lang/macro, lang] apply rustfmt
Robbepop 9996190
[lang/macro] add ink_lang_codegen dependency
Robbepop 6c7559a
[core/derive] use _ as const name instead of generated one
Robbepop d4df984
[lang/codegen] prefix {Constructo,Message}DispatchEnum ident with __ink_
Robbepop 30c0081
[lang/codegen] use payable instead of is_payable
Robbepop 04706bc
[lang/codegen] hide some generated types
Robbepop e2b19ff
[lang/ir] improve error span of bad storage struct visibility
Robbepop 03e7048
[core] add CallBuilder::returns to signal return type
Robbepop 3475ace
[lang/ir] implement ToTokens for ir::Receiver
Robbepop 7f99585
[lang/codegen] apply #[doc(hidden)] to generated call forwarders
Robbepop 1f22787
[lang/codegen] slightly clean-up code
Robbepop b6b1618
[lang/codegen] use new call infrastructure for call forwarders
Robbepop 9a65bd8
[lang/codegen] add codegen for short-hand cross-contract message calls
Robbepop d97d025
[lang/codegen] add #[inline] to generated short-hand message calls
Robbepop dbe3621
[lang/codegen] improve short-hand call error message
Robbepop 69c3477
[lang/codegen] do not generate conflicting impls
Robbepop 586bee9
[lang/codegen] generate non-ink! specific user defined items
Robbepop f52d80f
[lang/ir] remove some commented out code
Robbepop 514982d
[core, lang/ir] apply rustfmt
Robbepop 1fdaf73
[core] add CreateBuilder::instantiate
Robbepop 025aeea
[lang/codegen] fix generate_arg_list
Robbepop 31bb52c
[lang/codegen] add cross-calling codegen for non-trait constructor impls
Robbepop 9e81729
[lang/codegen] add an associated type per trait constructor in ink! t…
Robbepop 743e664
[lang/codegen] remove former Output associated type in ink! trait def…
Robbepop 79775ab
[lang] re-export trait_definiction proc. macro from ink_lang crate
Robbepop ac2c2ed
[lang/ir] expose InkTrait::compute_verify_hash
Robbepop 25202ff
[lang/ir] add ir::ItemImpl::trait_ident
Robbepop ae8ae16
[lang/codegen] fix some bugs with trait_definition codegen
Robbepop a604f4b
[lang/codegen] add codegen for cross-calling ink! trait implementations
Robbepop cb45c50
[lang/codegen] surpress warning in generated code
Robbepop bf3a5c1
[lang/codegen] fix bug in generated trait constructors
Robbepop 069f93d
[lang/codegen] add codegen for trait implementation blocks
Robbepop 1d303b3
[lang/ir] allow access to parent impl block from within a CallableWit…
Robbepop 83648cc
[lang/codegen] make dispatch trait impls more explicit for trait impls
Robbepop 54c2c1b
[lang/codegen] fix and fully implement cross-calling (trait) impl blocks
Robbepop 424ba45
[lang/ir] add ir::ItemImpl::attrs getter
Robbepop 9e84527
[lang/codegen] add codegen for impl block attributes for cross-calling
Robbepop 8827c30
[lang/codegen] correctly re-generate attributes for impl blocks
Robbepop 15f9ed4
[lang/codegen] generate forwarder inherent impl blocks
Robbepop 71ef510
[lang, lang/codegen] adjust ink::trait_definition proc. macro codegen
Robbepop 59e258f
[lang/codegen] add cross-calling call forwarder codegen for trait imp…
Robbepop 21a7184
[lang] add NeverReturns utility codegen type
Robbepop 96269ea
[lang/codegen] implement codegen for cross-calling trait impl blocks
Robbepop 1a30178
[*] apply rustfmt
Robbepop 6c67c17
[lang/codegen] apply some clippy suggestions
Robbepop 1601a8e
[lang/codegen] always use std feature for itertools dependency
Robbepop 419e47f
[lang/ir] fix error span for bad event visibility modifier
Robbepop 674af65
[lang/ir, lang/codegen] fix event fields codegen
Robbepop e72b556
[lang/codegen] fix incorrectly generated EmitEvent trait impl
Robbepop 46fd7b4
[lang/codegen] fix bugs with ink-as-dependency and event usage
Robbepop 911fd49
[lang, lang/codegen] add ContractEnv trait
Robbepop 7dd0b15
[lang, lang/codegen] implement payable messages and dynamic storage a…
Robbepop 856e0b5
Merge branch 'master' of github.com:paritytech/ink into robin-impleme…
Robbepop d24126d
[lang/macro, lang/codegen] apply rustfmt
Robbepop 168c7bc
[lang/ir] error upon payable constructor
Robbepop f7f2027
[core] remove EnvTypes::Call associated type
Robbepop 0e89040
[core] add MAX_EVENT_TOPICS to EnvTypes trait
Robbepop cf55d26
[lang, lang/codegen] optimize message payment checks codegen
Robbepop 7f1bb35
[lang/ir, lang/codegen] dynamic storage allocator: rename + change de…
Robbepop f1e759c
[lang, lang/codegen] add codegen to guard against too many event topics
Robbepop e47eb25
Merge branch 'master' of github.com:paritytech/ink into robin-impleme…
Robbepop b990432
[lang/codegen] pull topic guards codegen out of topics impl codegen c…
Robbepop 72fe1b6
[lang/codegen] split event topic guards into their own method
Robbepop 841255e
[lang] apply rustftm
Robbepop 2a70639
[lang/ir] remove unnecessary lifetime
Robbepop f68e71c
[lang] make use of deny_payment internally
Robbepop c000409
[lang/macro] ignore UI compile tests for now
Robbepop 4f834dc
[metadata] rename is_payable -> payable (also for metadata format)
Robbepop bd39737
[lang/ir] resolve duplicate code for non-pub visibility checking
Robbepop b0f4e1f
[lang/ir] apply rustfmt
Robbepop 4763d16
[lang/codegen] removed commented-out code and update license header
Robbepop 3ba22cc
[lang/codegen] update crate description
Robbepop dbbb83e
[core] move CreateParams impl blocks closer to struct definition
Robbepop 850512a
[lang/macro] use US english
Robbepop 7aba893
[core] fix incorrect doc comment
Robbepop File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,6 +7,7 @@ members = [ | |
| "lang", | ||
| "lang/macro", | ||
| "lang/ir", | ||
| "lang/codegen", | ||
| "prelude", | ||
| "primitives", | ||
| ] | ||
|
|
||
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
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
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
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
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
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
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.