Comments (1)
This is not a bug, but a feature.
For container like records (span
, vector
and sequence
) a list of values has different meaning than a list with named fields when initializing. An example demonstrate this better:
require 'span'
require 'vector'
local a = (@span(byte)){1,2,3,4}
for i=0,<#a do
print(a[i]) -- outputs 1,2,3,4
end
local v = (@vector(byte)){5,6,7,8}
for i=0,<#v do
print(v[i]) -- outputs 5,6,7,8
end
But at the moment you initialize using named fields, the meaning is different, then you are really initializing its record fields. I clarified this in commit 31270b5
If you wonder why this is a feature, it's because span
can be used a placeholder for functions that accept any kind of container, and even lists of values, for example:
require 'span'
require 'vector'
local function f(a: span(byte))
for i=0,<#a do
print(a[i]) -- outputs 5,6,7,8
end
end
f{1,2,3,4} -- I can call here from a list of values
local v: vector(byte) = {5,6,7,8}
f(v)
local a: array(byte) = {9,10}
f(a)
from nelua-lang.
Related Issues (20)
- Executables reflect compile-time isatty conditions HOT 3
- <comptime> record parameters can't be provided; fields can't be used in runtime code HOT 1
- Copyright timespan needs update HOT 3
- Invalid unitname generated for directories that look like numeric literals HOT 1
- No line number in error if a hashmap index has a type error
- Range check error messages point to library code (point of check) rather than user code (point of error) HOT 1
- Function variables can collide with C identifiers HOT 1
- Confusing errors with varargs
- Permit function returns in generic instantiation, not just types
- Broken preprocessor after 9faaa66e HOT 3
- Comparison of a pointer with nil generates unexpected C code HOT 2
- we need nelua debugger(vscode) or tell us how to debug my app? HOT 2
- Compatible with Lua C plug-in HOT 2
- LFS: can't change directory with `lfs.chdir` HOT 1
- error while compiling when a source file starts with a number HOT 1
- Compiler hangs when cgenerator.lua errors
- Can't compile fibonacci example
- Can't compile fibonacci example
- Support actual closures via struct
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nelua-lang.