Skip to content

Bug: Global variables  #2096

Open
Open
@ronnuriel

Description

@ronnuriel

Lpython is not recognizing global variables:

from lpython import i32, f64, i64, dataclass, ccall, union, Union, packed, u32, u16, u64, CPtr, sizeof, c_p_pointer, \
    Pointer
import numpy as np

@dataclass
class db_data:
    num_records: u32 = u32(0)


g_db_data: db_data = db_data()

def foo() -> None:
    global g_db_data
    g_db_data.num_records = 2
    print('hi', g_db_data.num_records)

foo()

Error massage:

semantic error: Variable: 'g_db_data' is not declared
  --> /Users/ronnuriel/Desktop/testlpython.py:14:5
   |
14 |     g_db_data.num_records = 2
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ 

The following works:

from lpython import i32, f64, i64, dataclass, ccall, union, Union, packed, u32, u16, u64, CPtr, sizeof, c_p_pointer, \
    Pointer
import numpy as np

@dataclass
class db_data:
    num_records: u32 = u32(0)


g_db_data: db_data = db_data()

def foo() -> None:
    global g_db_data
    # g_db_data.num_records = 2
    print('hi', g_db_data.num_records)

foo()

Metadata

Metadata

Assignees

Labels

asrASR related changesbugSomething isn't workingcLabel for C language related changes

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions