Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Borrowed references can survive borrowing-block #861

Open
EliasC opened this issue Mar 26, 2018 · 0 comments
Open

Borrowed references can survive borrowing-block #861

EliasC opened this issue Mar 26, 2018 · 0 comments
Assignees

Comments

@EliasC
Copy link
Contributor

EliasC commented Mar 26, 2018

It is possible to assign a borrowed variable to another variable declared outside of the borrowing scope:

read trait Hello
  def hello() : unit
    println("Hello, World!")
  end
end

linear class Foo : Hello
end

active class Main
  def main() : unit
    var x = new Foo
    var z = null : borrowed Foo
    borrow x as y in
      z = y -- This assignment should not be allowed!
    end
    -- z is now an alias of (the supposedly linear) x
    z.hello()
    x.hello()
  end
end
@EliasC EliasC self-assigned this Mar 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant