inline warnings
bowenwang1996 opened this issue · comments
Currently there are a lot of warnings like this
WARNING AS224: TODO: Cannot inline inferred calls and specific internals yet.
it >>= shift;
~~~~~~~~~~~~
in assembly/integer/u256.ts(515,8)
when I build the project. It seems that this happens only with the new runtime. It would be nice if we can fix it.
yeah, currently new runtime little bit more verbose with inlined operators.
@dcodeIO is it possible reduce this warnings?
It would be good to know what causes these warnings.
At some occasions, if the arguments to a call have already been compiled prior to compiling the call itself, which happens for example if a binary operation is being compiled and an overload found later based on the type that resulted from compiling the binary operands, converting the call into an inlined block can lead to situations where locals used inside of the previously compiled arguments will conflict with locals introduced in the inlined block. Since runtime has been merged, there is some utility to potentially remedy local conflicts, but this hasn't yet been attempted in some cases, hence the old warnings are still in place. Essentially, the warning appears if a call that is annotated to be inlined isn't inlined and becomes a normal call instead, in turn resulting in an instance of the otherwise inlined (and not present) function to be included in the binary.
Fixed