Implicit non-nullability for fields

This commit is contained in:
Anuken
2020-10-01 13:33:43 -04:00
parent b15cdfef46
commit 199be4d13d
37 changed files with 71 additions and 87 deletions

View File

@@ -440,6 +440,8 @@ public class ContentParser{
}
public void markError(Content content, LoadedMod mod, Fi file, Throwable error){
Log.err("Error for @ / @:\n@\n", content, file, Strings.getStackTrace(error));
content.minfo.mod = mod;
content.minfo.sourceFile = file;
content.minfo.error = makeError(error, file);
@@ -545,7 +547,7 @@ public class ContentParser{
try{
if(field.field.getType().isPrimitive()) return;
if(field.field.isAnnotationPresent(NonNull.class) && field.field.get(object) == null){
if(!field.field.isAnnotationPresent(Nullable.class) && field.field.get(object) == null){
throw new RuntimeException("'" + field.field.getName() + "' in " + object.getClass().getSimpleName() + " is missing!");
}
}catch(Exception e){

View File

@@ -5,7 +5,7 @@ import arc.mock.*;
import arc.util.ArcAnnotate.*;
public class ModLoadingMusic implements Music{
public @NonNull Music music = new MockMusic();
public Music music = new MockMusic();
@Override
public void play(){

View File

@@ -6,7 +6,7 @@ import arc.mock.*;
import arc.util.ArcAnnotate.*;
public class ModLoadingSound implements Sound{
public @NonNull Sound sound = new MockSound();
public Sound sound = new MockSound();
@Override
public float calcPan(float x, float y){

View File

@@ -399,7 +399,7 @@ public class Mods implements Loadable{
d.button("@details", Icon.downOpen, Styles.transt, () -> {
new Dialog(""){{
setFillParent(true);
cont.pane(e -> e.add(c.minfo.error).wrap().grow()).grow();
cont.pane(e -> e.add(c.minfo.error).wrap().grow().labelAlign(Align.center, Align.left)).grow();
cont.row();
cont.button("@ok", Icon.left, this::hide).size(240f, 60f);
}}.show();