And now Swift not only allows these in a way that's familiar to existing mainstream programmers, it interoperates fully with Objective-C and offers additional features like polymorphic literals. And when polymorphic literals (previously allowed only by Haskell, and then not with user-defined types) makes typechecking take 12 hours [5], it's widely decried for being poorly implemented.
On the Rust end - the whole concept of the borrow checker was borrowed (sorry) from Cyclone [6][7], a research language of the early 2000s. I remember seeing it occasionally pop up on Lambda: the Ultimate [8] around 2004-2005, people seemed intrigued, but few people really took notice. Rust's big accomplishment is to generalize this to an "industrial strength" programming language, figuring out all the corner cases around mutability, traits, move-semantics, boxes, etc. that you need for this to work in real programming.
[1] http://repository.cmu.edu/cgi/viewcontent.cgi?article=3059&c...
[2] http://research.microsoft.com/en-us/um/people/simonpj/Haskel...
[3] https://realworldocaml.org/v1/en/html/objects.html
[4] https://downloads.haskell.org/~ghc/latest/docs/html/users_gu...
[5] https://www.reddit.com/r/programming/comments/4givdg/go_home...
[6] http://www.bennetyee.org/ucsd-pages/Courses/cse227.w03/hando...