lib/Hask/WorkerWrapperPass.cpp
// The nonsense that is MLIR only sets the type that is tracked by the
// type *attribute* and not *the type of the entry block arguments.
// This really sets the type of the entry block arguments as well.
The nonsense that is MLIR only sets the type that is tracked by the
type *attribute* and not *the type of the entry block arguments.
This really sets the type of the entry block arguments as well.
The nonsense that is MLIR only sets the type that is tracked by the type * attribute * and not * the type of the entry block arguments . This really sets the type of the entry block arguments as well .
void reallySetFunctionType(mlir::FuncOp f, mlir::FunctionType ty) {
  f.setType(ty);
  assert(f.getNumArguments() == ty.getNumInputs());
  for (int i = 0; i < (int)f.getNumArguments(); ++i) {
    f.getArgument(i).setType(ty.getInput(i));
  }
}
void reallySetFunctionType ( mlir :: FuncOp f , mlir :: FunctionType ty ) { f . setType ( ty ) ; assert ( f . getNumArguments ( ) == ty . getNumInputs ( ) ) ; for ( int i = 0 ; i < ( int ) f . getNumArguments ( ) ; ++ i ) { f . getArgument ( i ) . setType ( ty . getInput ( i ) ) ; } }
The nonsense that is MLIR only sets the type that is tracked by the
type *attribute* and not *the type of the entry block arguments.
The nonsense that is MLIR only sets the type that is tracked by the type * attribute * and not * the type of the entry block arguments .