mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
parser: use the [has_globals]
module attribute, remove the parser global_enabled_mods whitelist
(part 2)
This commit is contained in:
parent
f0f5f97e9f
commit
045579fd8a
@ -1,6 +1,7 @@
|
||||
// Copyright (c) 2019-2021 Alexander Medvednikov. All rights reserved.
|
||||
// Use of this source code is governed by an MIT license
|
||||
// that can be found in the LICENSE file.
|
||||
[has_globals]
|
||||
module rand
|
||||
|
||||
import rand.config
|
||||
@ -35,9 +36,7 @@ mut:
|
||||
free()
|
||||
}
|
||||
|
||||
__global (
|
||||
default_rng &PRNG
|
||||
)
|
||||
__global default_rng &PRNG
|
||||
|
||||
// new_default returns a new instance of the default RNG. If the seed is not provided, the current time will be used to seed the instance.
|
||||
[manualfree]
|
||||
|
@ -45,8 +45,8 @@ pub fn (mut rng SplitMix64RNG) u32() u32 {
|
||||
pub fn (mut rng SplitMix64RNG) u64() u64 {
|
||||
rng.state += (0x9e3779b97f4a7c15)
|
||||
mut z := rng.state
|
||||
z = (z ^ ((z >> u64(30)))) * (0xbf58476d1ce4e5b9)
|
||||
z = (z ^ ((z >> u64(27)))) * (0x94d049bb133111eb)
|
||||
z = (z ^ (z >> u64(30))) * 0xbf58476d1ce4e5b9
|
||||
z = (z ^ (z >> u64(27))) * 0x94d049bb133111eb
|
||||
return z ^ (z >> (31))
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
[has_globals]
|
||||
module sapp
|
||||
|
||||
import sokol.gfx
|
||||
@ -5,9 +6,7 @@ import sokol.gfx
|
||||
pub const used_import = gfx.used_import
|
||||
|
||||
// Android needs a global reference to `g_desc`
|
||||
__global (
|
||||
g_desc C.sapp_desc
|
||||
)
|
||||
__global g_desc C.sapp_desc
|
||||
|
||||
pub fn create_desc() C.sg_desc {
|
||||
metal_desc := C.sg_metal_context_desc{
|
||||
|
@ -3074,14 +3074,10 @@ fn (mut p Parser) return_stmt() ast.Return {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove this whitelist of modules which allow globals by default
|
||||
const global_enabled_mods = ['rand', 'sokol.sapp']
|
||||
|
||||
// left hand side of `=` or `:=` in `a,b,c := 1,2,3`
|
||||
fn (mut p Parser) global_decl() ast.GlobalDecl {
|
||||
if !p.has_globals && !p.pref.enable_globals && !p.pref.is_fmt && !p.pref.translated
|
||||
&& !p.pref.is_livemain && !p.pref.building_v && !p.builtin_mod
|
||||
&& p.mod !in parser.global_enabled_mods {
|
||||
&& !p.pref.is_livemain && !p.pref.building_v && !p.builtin_mod {
|
||||
p.error('use `v -enable-globals ...` to enable globals')
|
||||
return ast.GlobalDecl{}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user