From d685a9b564fe524865cda5713c527aaeb1ca6b1d Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 1 Nov 2018 13:41:04 +0300 Subject: Use From to get an owned AST --- crates/ra_syntax/src/ast/generated.rs.tera | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'crates/ra_syntax/src/ast/generated.rs.tera') diff --git a/crates/ra_syntax/src/ast/generated.rs.tera b/crates/ra_syntax/src/ast/generated.rs.tera index d30038cba..1321f0def 100644 --- a/crates/ra_syntax/src/ast/generated.rs.tera +++ b/crates/ra_syntax/src/ast/generated.rs.tera @@ -17,15 +17,18 @@ use crate::{ pub struct {{ node }}Node(SyntaxNode); impl {{ node }}Node { - pub fn new(ast: {{ node }}) -> {{ node }}Node { - let syntax = ast.syntax().owned(); - {{ node }}Node(syntax) - } pub fn ast(&self) -> {{ node }} { {{ node }}::cast(self.0.borrowed()).unwrap() } } +impl<'a> From<{{ node }}<'a>> for {{ node }}Node { + fn from(ast: {{ node}}<'a>) -> {{ node }}Node { + let syntax = ast.syntax().owned(); + {{ node }}Node(syntax) + } +} + {%- if methods.enum %} #[derive(Debug, Clone, Copy)] pub enum {{ node }}<'a> { -- cgit v1.2.3