From 90ccd37d9076bef08cb7fe5d857a4457001d41d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jesper=20=C3=96qvist?= <jesper.oqvist@cs.lth.se>
Date: Thu, 22 Mar 2018 13:29:03 +0100
Subject: [PATCH] Fix crash when displaying ASTNode

---
 src/app/ast-decl/ast-decl.component.ts | 2 +-
 src/app/ast-decl/ast-decl.ts           | 2 +-
 src/app/type-ref.component.ts          | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/app/ast-decl/ast-decl.component.ts b/src/app/ast-decl/ast-decl.component.ts
index 291aa19..e42265f 100644
--- a/src/app/ast-decl/ast-decl.component.ts
+++ b/src/app/ast-decl/ast-decl.component.ts
@@ -17,7 +17,7 @@ import {AstDecl} from './ast-decl';
   `],
   template: `
   <p *ngIf="decl">JastAdd production: <br>
-    <div class="ast-decl">{{decl.name}}: <type-ref [type]="decl.extends"></type-ref><!--
+      <div class="ast-decl">{{decl.name}}<ng-container *ngIf="decl.extends">: <type-ref [type]="decl.extends"></type-ref></ng-container><!--
     --><ng-container *ngIf="decl.components"> ::= <!--
       --><ng-container *ngFor="let comp of decl.components"><!--
         --><div class="ast-component"><!--
diff --git a/src/app/ast-decl/ast-decl.ts b/src/app/ast-decl/ast-decl.ts
index 46c476d..aa46f36 100644
--- a/src/app/ast-decl/ast-decl.ts
+++ b/src/app/ast-decl/ast-decl.ts
@@ -3,7 +3,7 @@ import {AstComponent} from './ast-component';
 
 export class AstDecl {
   name: string;
-  extends: TypeRef;
+  extends?: TypeRef;
   components?: AstComponent[];
 
   static fromJson(json: any): AstDecl {
diff --git a/src/app/type-ref.component.ts b/src/app/type-ref.component.ts
index 34ad060..92545d2 100644
--- a/src/app/type-ref.component.ts
+++ b/src/app/type-ref.component.ts
@@ -18,11 +18,11 @@ import { MemberFilterService } from './member-filter.service';
       color: #444;
     }
   `],
-  template: `<a *ngIf="type.id; else elseBlock" class="usertype" [routerLink]="['/type', type.id]" (click)="onClick()">{{getName()}}</a><!--
+  template: `<ng-container *ngIf="type;else notype"><a *ngIf="type.id; else elseBlock" class="usertype" [routerLink]="['/type', type.id]" (click)="onClick()">{{getName()}}</a><!--
   --><ng-template #elseBlock><span class="non-usertype">{{getName()}}</span></ng-template><!--
     --><ng-container *ngIf="type.args && !name"><!--
       -->&lt;<ng-container *ngFor="let arg of type.args; let isLast=last"><type-ref [type]="arg"></type-ref><div *ngIf="!isLast" class="sep">,</div></ng-container>&gt;<!--
-    --></ng-container>`
+    --></ng-container></ng-container><ng-template #notype>Unknown Type</ng-template>`
 })
 export class TypeReferenceComponent {
   @Input() type : Type;
-- 
GitLab