Compiler bug ? type parameter lost for field


#1

e.g:

Inject var itemEvent: Event<Item>? = null

=>

@Inject   private Event itemEvent;

  @JetMethod(flags=17, propertyType="?Ljavax/enterprise/event/Event<Lorg/jboss/as/quickstarts/cdi/injection/Item;>;")
  public final Event<Item> getItemEvent()
  {
  return this.itemEvent;
  }

  @JetMethod(flags=17, propertyType="?Ljavax/enterprise/event/Event<Lorg/jboss/as/quickstarts/cdi/injection/Item;>;")
  public final void setItemEvent(@JetValueParameter(name="<set-?>", type="?Ljavax/enterprise/event/Event<Lorg/jboss/as/quickstarts/cdi/injection/Item;>;") Event<Item> <set-?>)
  {
  this.itemEvent = <set-?>;
  }

CDI will throw exception:

SEVERE: Exception while loading the app : CDI definition failure:WELD-001426 An injection point of type interface javax.enterprise.event.Event must have a type parameter:  [BackedAnnotatedField] @Inject private org.jboss.as.quickstarts.cdi.injection.EventItemHandler.itemEvent
org.jboss.weld.exceptions.DefinitionException: WELD-001426 An injection point of type interface javax.enterprise.event.Event must have a type parameter:  [BackedAnnotatedField] @Inject private org.jboss.as.quickstarts.cdi.injection.EventItemHandler.itemEvent
     at org.jboss.weld.bootstrap.Validator.checkFacadeInjectionPoint(Validator.java:759)
     at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDefinitionErrors(Validator.java:353)
     at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:322)

any workaround? Thanks!

Outersky


#2

this works for now,  but not convinence.

  var itemEvent: Event<Item>? = null   [Inject] set(evt){   $itemEvent = evt   }


#3

Fixed in last build (http://youtrack.jetbrains.com/issue/KT-3722)