From 1a1195dd006a0da354d6ace9ed3eb96f6c0951d5 Mon Sep 17 00:00:00 2001 From: Niall Gallagher Date: Sun, 29 Jan 2017 23:25:16 +0000 Subject: [PATCH] Make sure link errors propagate --- .../java/org/snapscript/core/link/PackageBundleLoader.java | 4 ++-- .../java/org/snapscript/core/link/StatementDefinition.java | 4 ++-- .../main/java/org/snapscript/core/link/StatementPackage.java | 4 ++-- .../main/java/org/snapscript/tree/define/ClassBuilder.java | 2 +- .../src/main/java/org/snapscript/tree/define/EnumBuilder.java | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/snap-core/src/main/java/org/snapscript/core/link/PackageBundleLoader.java b/snap-core/src/main/java/org/snapscript/core/link/PackageBundleLoader.java index d67d9e71..5620bd13 100644 --- a/snap-core/src/main/java/org/snapscript/core/link/PackageBundleLoader.java +++ b/snap-core/src/main/java/org/snapscript/core/link/PackageBundleLoader.java @@ -59,9 +59,9 @@ private Package load(Path path) throws Exception { FuturePackage result = new FuturePackage(task, path); if(registry.putIfAbsent(path, result) == null) { - task.run(); + task.run(); // call a validate method here } - return registry.get(path); + return registry.get(path); // return the future package } } return module; diff --git a/snap-core/src/main/java/org/snapscript/core/link/StatementDefinition.java b/snap-core/src/main/java/org/snapscript/core/link/StatementDefinition.java index dea4e4bc..53203f89 100644 --- a/snap-core/src/main/java/org/snapscript/core/link/StatementDefinition.java +++ b/snap-core/src/main/java/org/snapscript/core/link/StatementDefinition.java @@ -40,10 +40,10 @@ public Statement compile(Scope scope, Path from) throws Exception { if(reference.compareAndSet(null, result)) { task.run(); - return statement; + return result; } } - return reference.get(); + return reference.get(); // return future package } return empty; } diff --git a/snap-core/src/main/java/org/snapscript/core/link/StatementPackage.java b/snap-core/src/main/java/org/snapscript/core/link/StatementPackage.java index 97e6df1c..2c3773fa 100644 --- a/snap-core/src/main/java/org/snapscript/core/link/StatementPackage.java +++ b/snap-core/src/main/java/org/snapscript/core/link/StatementPackage.java @@ -38,10 +38,10 @@ public PackageDefinition define(Scope scope) throws Exception { if(reference.compareAndSet(null, result)) { task.run(); - return definition; + return result; // must be future package for errors } } - return reference.get(); + return reference.get(); // return future package } private class Executable implements Callable { diff --git a/snap-tree/src/main/java/org/snapscript/tree/define/ClassBuilder.java b/snap-tree/src/main/java/org/snapscript/tree/define/ClassBuilder.java index fd520562..4779f09f 100644 --- a/snap-tree/src/main/java/org/snapscript/tree/define/ClassBuilder.java +++ b/snap-tree/src/main/java/org/snapscript/tree/define/ClassBuilder.java @@ -39,8 +39,8 @@ public Result compile(Scope outer) throws Exception { Scope scope = type.getScope(); annotations.apply(scope, type); - hierarchy.update(scope, type); builder.declare(scope, type); + hierarchy.update(scope, type); // this may throw exception if missing type return ResultType.getNormal(type); } diff --git a/snap-tree/src/main/java/org/snapscript/tree/define/EnumBuilder.java b/snap-tree/src/main/java/org/snapscript/tree/define/EnumBuilder.java index 0bd647dd..7f8ecb27 100644 --- a/snap-tree/src/main/java/org/snapscript/tree/define/EnumBuilder.java +++ b/snap-tree/src/main/java/org/snapscript/tree/define/EnumBuilder.java @@ -40,8 +40,8 @@ public Result compile(Scope outer) throws Exception { Type type = module.getType(alias); Scope scope = type.getScope(); - hierarchy.update(scope, type); builder.declare(scope, type, values); + hierarchy.update(scope, type); // this may throw exception if missing type return ResultType.getNormal(type); }