# provideDelegate

operator fun <T : Any> T.provideDelegate(receiver: Any?, property: KProperty<*>): T(source)

Required due to KT-25810.

#### Since

4.10

operator fun ExtraPropertiesExtension.provideDelegate(receiver: Any?, property: KProperty<*>): MutablePropertyDelegate(source)

### Deprecated

Use 'val property = extra[name] as Type' instead. See the Gradle 9.6 upgrading guide.

Provides property delegate for typed access to extra properties.

#### Since

4.7

operator fun <T : Any, C : NamedDomainObjectCollection<T>> ExistingDomainObjectDelegateProvider<C>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<NamedDomainObjectProvider<T?>?>(source)

### Deprecated

Use 'val element = named(name)' instead. See the Gradle 9.6 upgrading guide.

Provides access to the NamedDomainObjectProvider for the element of the given property name from the container via a delegated property.

#### Since

4.10

operator fun <T : Any, C : NamedDomainObjectCollection<T>> ExistingDomainObjectDelegateProviderWithAction<C, T>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<NamedDomainObjectProvider<T?>?>(source)

### Deprecated

Use 'val element = named(name) { }' instead. See the Gradle 9.6 upgrading guide.

Provides access to the NamedDomainObjectProvider for the element of the given property name from the container via a delegated property.

#### Since

4.10

operator fun <T : Any, C : NamedDomainObjectCollection<T>, U : T> ExistingDomainObjectDelegateProviderWithType<C, U>.provideDelegate(receiver: Any?, property: KProperty<*>): ERROR CLASS: Cannot infer argument for type parameter K(source)

### Deprecated

Use 'val element = named<Type>(name)' instead. See the Gradle 9.6 upgrading guide.

Provides access to the NamedDomainObjectProvider for the element of the given property name from the container via a delegated property.

#### Since

4.10

operator fun <T : Any, C : NamedDomainObjectCollection<T>, U : T> ExistingDomainObjectDelegateProviderWithTypeAndAction<C, U>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<NamedDomainObjectProvider<U>>(source)

### Deprecated

Use 'val element = named<Type>(name) { }' instead. See the Gradle 9.6 upgrading guide.

Provides access to the NamedDomainObjectProvider for the element of the given property name from the container via a delegated property.

#### Since

4.10

operator fun <T : Any> NamedDomainObjectCollection<T>.provideDelegate(thisRef: Any?, property: KProperty<*>): NamedDomainObjectProvider<T?>?(source)

### Deprecated

Use 'val element = getByName(name)' instead. See the Gradle 9.6 upgrading guide.

Allows a NamedDomainObjectCollection to be used as a property delegate.

#### Since

4.10

#### See also

NamedDomainObjectCollection.named

operator fun <T : Any, C : NamedDomainObjectContainer<T>> RegisteringDomainObjectDelegateProvider<C>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<NamedDomainObjectProvider<T?>?>(source)

### Deprecated

Use 'val element = register(name)' instead. See the Gradle 9.6 upgrading guide.

Registers an element and provides a delegate with the resulting NamedDomainObjectProvider.

#### Since

4.10

operator fun <T : Any, C : NamedDomainObjectContainer<T>> RegisteringDomainObjectDelegateProviderWithAction<C, T>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<NamedDomainObjectProvider<T?>?>(source)

### Deprecated

Use 'val element = register(name) { }' instead. See the Gradle 9.6 upgrading guide.

Registers an element and provides a delegate with the resulting NamedDomainObjectProvider.

#### Since

4.10

operator fun <T : Any, C : PolymorphicDomainObjectContainer<T>, U : T> RegisteringDomainObjectDelegateProviderWithType<C, U>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<NamedDomainObjectProvider<U?>?>(source)

### Deprecated

Use 'val element = register<Type>(name)' instead. See the Gradle 9.6 upgrading guide.

Registers an element and provides a delegate with the resulting NamedDomainObjectProvider.

#### Since

4.10

operator fun <T : Any, C : PolymorphicDomainObjectContainer<T>, U : T> RegisteringDomainObjectDelegateProviderWithTypeAndAction<C, U>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<NamedDomainObjectProvider<U?>?>(source)

### Deprecated

Use 'val element = register<Type>(name) { }' instead. See the Gradle 9.6 upgrading guide.

Registers an element and provides a delegate with the resulting NamedDomainObjectProvider.

#### Since

4.10

operator fun Project.provideDelegate(any: Any?, property: KProperty<*>): PropertyDelegate(source)

### Deprecated

Use 'val property = project.property(name)' or 'val property = project.findProperty(name)' instead. See the Gradle 9.6 upgrading guide.

Locates a property on Project.

#### Since

4.7

operator fun Settings.provideDelegate(any: Any?, property: KProperty<*>): PropertyDelegate(source)

### Deprecated

Use 'providers.gradleProperty(name)' for Gradle properties or 'extra[name]' for extra properties instead. See the Gradle 9.6 upgrading guide.

Locates a property on Settings.

#### Since

4.7

operator fun ExistingDomainObjectDelegateProvider<out TaskContainer>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<TaskProvider<Task?>?>(source)

### Deprecated

Use 'val task = tasks.named(name)' instead. See the Gradle 9.6 upgrading guide.

Provides a TaskProvider delegate for the task named after the property.

#### Since

4.10

operator fun ExistingDomainObjectDelegateProviderWithAction<out TaskContainer, Task>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<TaskProvider<Task?>?>(source)

### Deprecated

Use 'val task = tasks.named(name) { }' instead. See the Gradle 9.6 upgrading guide.

Provides a TaskProvider delegate for the task named after the property after configuring it with the given action.

#### Since

4.10

operator fun <U : Task> ExistingDomainObjectDelegateProviderWithType<out TaskContainer, U>.provideDelegate(receiver: Any?, property: KProperty<*>): ERROR CLASS: Cannot infer argument for type parameter K(source)

### Deprecated

Use 'val task = tasks.named<Type>(name)' instead. See the Gradle 9.6 upgrading guide.

Provides a TaskProvider delegate for the task of the given type named after the property.

#### Since

4.10

operator fun <U : Task> ExistingDomainObjectDelegateProviderWithTypeAndAction<out TaskContainer, U>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<Unit>(source)

### Deprecated

Use 'val task = tasks.named<Type>(name) { }' instead. See the Gradle 9.6 upgrading guide.

Provides a TaskProvider delegate for the task of the given type named after the property after configuring it with the given action.

#### Since

5.0

operator fun RegisteringDomainObjectDelegateProvider<out TaskContainer>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<TaskProvider<Task?>?>(source)

### Deprecated

Use 'val task = tasks.register(name)' instead. See the Gradle 9.6 upgrading guide.

Registers a task and provides a delegate with the resulting TaskProvider.

#### Since

4.10

operator fun RegisteringDomainObjectDelegateProviderWithAction<out TaskContainer, Task>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<TaskProvider<Task?>?>(source)

### Deprecated

Use 'val task = tasks.register(name) { }' instead. See the Gradle 9.6 upgrading guide.

Registers a task that gets configured with the given action and provides a delegate with the resulting TaskProvider.

#### Since

4.10

operator fun <U : Task> RegisteringDomainObjectDelegateProviderWithType<out TaskContainer, U>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<TaskProvider<U?>?>(source)

### Deprecated

Use 'val task = tasks.register<Type>(name)' instead. See the Gradle 9.6 upgrading guide.

Registers a task of the given type and provides a delegate with the resulting TaskProvider.

#### Since

4.10

operator fun <U : Task> RegisteringDomainObjectDelegateProviderWithTypeAndAction<out TaskContainer, U>.provideDelegate(receiver: Any?, property: KProperty<*>): ExistingDomainObjectDelegate<TaskProvider<U?>?>(source)

### Deprecated

Use 'val task = tasks.register<Type>(name) { }' instead. See the Gradle 9.6 upgrading guide.

Registers a task of the given type that gets configured with the given action and provides a delegate with the resulting TaskProvider.

#### Since

4.10