package com.example.inverse;

import arez.annotations.ArezComponent;
import arez.annotations.Inverse;
import arez.annotations.Observable;
import arez.annotations.Reference;
import arez.annotations.ReferenceId;
import java.util.Collection;

public class MissingInverseOnReferenceModel
{
  @ArezComponent
  static abstract class Wheel
  {
    @Reference
    abstract Car getCar();

    @ReferenceId
    @Observable
    abstract int getCarId();

    abstract void setCarId( int carId );
  }

  @ArezComponent
  static abstract class Car
  {
    @Inverse
    abstract Collection<Wheel> getWheels();
  }
}

@@ -279,16 +279,127 @@
 Model%0A%7B%0A
+  @ArezComponent%0A  static abstract class Car%0A  %7B%0A    @Inverse%0A    abstract Collection%3CWheel%3E getWheels();%0A  %7D%0A%0A
   @ArezC
@@ -595,118 +595,7 @@
 %0A  %7D
-%0A%0A  @ArezComponent%0A  static abstract class Car%0A  %7B%0A    @Inverse%0A    abstract Collection%3CWheel%3E getWheels();%0A  %7D
 %0A%7D%0A

Reorder classes to ensure compiler operates in correct order