fix generics
This commit is contained in:
+4
-4
@@ -3,13 +3,13 @@ use serde::Serialize;
|
|||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
pub struct Identifier(pub String);
|
pub struct Identifier(pub String);
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize, Default)]
|
||||||
pub struct FieldList(pub Vec<(Identifier, Visibility, TypeExpr)>);
|
pub struct FieldList(pub Vec<(Identifier, Visibility, TypeExpr)>);
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize, Default)]
|
||||||
pub struct ParamList(pub Vec<VarDecl>);
|
pub struct ParamList(pub Vec<VarDecl>);
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize, Default)]
|
||||||
pub struct Block(pub Vec<Statement>);
|
pub struct Block(pub Vec<Statement>);
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
@@ -95,7 +95,7 @@ pub enum TopLevelKind {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize, Default)]
|
||||||
pub struct Generics(pub Vec<(Identifier, Vec<Path>)>);
|
pub struct Generics(pub Vec<(Identifier, Vec<Path>)>);
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
|
|||||||
+2
-2
@@ -260,8 +260,8 @@ impl From<pest::iterators::Pair<'_, Rule>> for TopLevelKind {
|
|||||||
name: Identifier::from(inner.next().unwrap()),
|
name: Identifier::from(inner.next().unwrap()),
|
||||||
generics: consume_rule(&mut inner, Rule::generics)
|
generics: consume_rule(&mut inner, Rule::generics)
|
||||||
.map(Generics::from)
|
.map(Generics::from)
|
||||||
.unwrap_or(Generics(Vec::new())),
|
.unwrap_or_default(),
|
||||||
fields: FieldList::from(inner.next().unwrap()),
|
fields: inner.next().map(FieldList::from).unwrap_or_default(),
|
||||||
},
|
},
|
||||||
|
|
||||||
Rule::class_decl => TopLevelKind::ClassDecl {
|
Rule::class_decl => TopLevelKind::ClassDecl {
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ mod my_class;
|
|||||||
use <my_class::MyClass>;
|
use <my_class::MyClass>;
|
||||||
use <my_class::MyEnum>;
|
use <my_class::MyEnum>;
|
||||||
|
|
||||||
struct Test<T> {}
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
var my_class = new MyClass("World");
|
var my_class = new MyClass("World");
|
||||||
my_class.greet();
|
my_class.greet();
|
||||||
|
|||||||
Reference in New Issue
Block a user