diff --git a/tests/snippets/global_nonlocal.py b/tests/snippets/global_nonlocal.py index ddf5e1ed2..1996f2e33 100644 --- a/tests/snippets/global_nonlocal.py +++ b/tests/snippets/global_nonlocal.py @@ -15,8 +15,11 @@ assert a == 4 def x(): def y(): + global a nonlocal b + assert a == 4, a b = 3 + a = "no!" # a here shouldn't be seen by the global above. b = 2 y() return b diff --git a/vm/src/scope.rs b/vm/src/scope.rs index 3ba068f6e..eda7ddc09 100644 --- a/vm/src/scope.rs +++ b/vm/src/scope.rs @@ -179,15 +179,6 @@ impl NameProtocol for Scope { #[cfg_attr(feature = "flame-it", flame("Scope"))] /// Load a global name. fn load_global(&self, vm: &VirtualMachine, name: &str) -> Option { - // First, take a look in the outmost local scope (the scope at top level) - let last_local_dict = self.locals.iter().last(); - if let Some(local_dict) = last_local_dict { - if let Some(value) = local_dict.get_item_option(name, vm).unwrap() { - return Some(value); - } - } - - // Now, take a look at the globals or builtins. if let Some(value) = self.globals.get_item_option(name, vm).unwrap() { Some(value) } else {