Skip to content

Commit 3b863dd

Browse files
JeanMechedylhunn
authored andcommitted
refactor(core): Remove ReflectiveInjector symbol (#48103)
The `ReflectiveInjector` symbol has been deprecated in v5 (11 major versions ago). This commit removes ReflectiveInjector and related symbols. BREAKING CHANGE: The `ReflectiveInjector` and related symbols were removed. Please update the code to avoid references to the `ReflectiveInjector` symbol. Use `Injector.create` as a replacement to create an injector instead. PR Close #48103
1 parent f071224 commit 3b863dd

File tree

15 files changed

+20
-1878
lines changed

15 files changed

+20
-1878
lines changed

aio/content/examples/deprecation-guide/src/app/app.component.ts

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// #docplaster
2-
import { Component, ContentChild, Injector, Input, OnInit, StaticProvider, TemplateRef } from '@angular/core';
3-
import { ReflectiveInjector } from '@angular/core';
2+
import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';
43
import {
54
FormControl,
65
} from '@angular/forms';
@@ -45,16 +44,3 @@ export class AppComponent implements OnInit {
4544
// #enddocregion reactive-form-example
4645
}
4746
}
48-
49-
class InjectorExample {}
50-
51-
const Provider = [InjectorExample];
52-
const providers: StaticProvider[] = [Provider];
53-
54-
// #docregion reflective-injector-deprecated-example
55-
ReflectiveInjector.resolveAndCreate(providers);
56-
// #enddocregion reflective-injector-deprecated-example
57-
58-
// #docregion static-injector-example
59-
Injector.create({providers});
60-
// #enddocregion static-injector-example

aio/content/guide/deprecations.md

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ v16 - v19
4343

4444
| Area | API or Feature | Deprecated in | May be removed in |
4545
|:--- |:--- |:--- |:--- |
46-
| `@angular/common` | [`ReflectiveInjector`](#reflectiveinjector) | v8 | v11 |
4746
| `@angular/core` | [`DefaultIterableDiffer`](#core) | v7 | v11 |
48-
| `@angular/core` | [`ReflectiveKey`](#core) | v8 | v11 |
4947
| `@angular/core` | [`defineInjectable`](#core) | v8 | v11 |
5048
| `@angular/core` | [`entryComponents`](api/core/NgModule) | v9 | v11 |
5149
| `@angular/core` | [`ANALYZE_FOR_ENTRY_COMPONENTS`](#core) | v9 | v11 |
@@ -157,9 +155,7 @@ In the [API reference section](api) of this site, deprecated APIs are indicated
157155

158156
| API | Replacement | Deprecation announced | Details |
159157
|:--- |:--- |:--- |:--- |
160-
| [`DefaultIterableDiffer`](api/core/DefaultIterableDiffer) | n/a | v4 | Not part of public API. |
161-
| [`ReflectiveInjector`](api/core/ReflectiveInjector) | [`Injector.create()`](api/core/Injector#create) | v5 | See [`ReflectiveInjector`](#reflectiveinjector) |
162-
| [`ReflectiveKey`](api/core/ReflectiveKey) | none | v5 | none |
158+
| [`DefaultIterableDiffer`](api/core/DefaultIterableDiffer) | n/a | v4 | Not part of public API. | |
163159
| [`defineInjectable`](api/core/defineInjectable) | `ɵɵdefineInjectable` | v8 | Used only in generated code. No source code should depend on this API. |
164160
| [`entryComponents`](api/core/NgModule) | none | v9 | See [`entryComponents`](#entryComponents) |
165161
| `ANALYZE_FOR_ENTRY_COMPONENTS` | none | v9 | See [`ANALYZE_FOR_ENTRY_COMPONENTS`](#entryComponents) |
@@ -353,20 +349,6 @@ You can choose to silence this warning by configuring `ReactiveFormsModule` at i
353349
Alternatively, you can choose to surface a separate warning for each instance of this pattern with a configuration value of `"always"`.
354350
This may help to track down where in the code the pattern is being used as the code is being updated.
355351

356-
<a id="reflectiveinjector"></a>
357-
358-
### `ReflectiveInjector`
359-
360-
In version 5, Angular replaced the `ReflectiveInjector` with the `StaticInjector`.
361-
The injector no longer requires the Reflect polyfill, reducing application size for most developers.
362-
363-
**Before**:
364-
365-
<code-example path="deprecation-guide/src/app/app.component.ts" language="typescript" region="reflective-injector-deprecated-example"></code-example>
366-
367-
**After**:
368-
369-
<code-example path="deprecation-guide/src/app/app.component.ts" language="typescript" region="static-injector-example"></code-example>
370352

371353
<a id="router-class-and-injection-token-guards"></a>
372354

goldens/circular-deps/packages.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@
9595
"packages/core/src/render3/interfaces/definition.ts",
9696
"packages/core/src/di/r3_injector.ts"
9797
],
98-
[
99-
"packages/core/src/di/reflective_errors.ts",
100-
"packages/core/src/di/reflective_injector.ts"
101-
],
10298
[
10399
"packages/core/src/linker/component_factory_resolver.ts",
104100
"packages/core/src/linker/component_factory.ts",
@@ -319,4 +315,4 @@
319315
"packages/router/src/shared.ts",
320316
"packages/router/src/url_tree.ts"
321317
]
322-
]
318+
]

goldens/public-api/core/index.md

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1223,34 +1223,6 @@ export class QueryList<T> implements Iterable<T> {
12231223
// @public
12241224
export function reflectComponentType<C>(component: Type<C>): ComponentMirror<C> | null;
12251225

1226-
// @public @deprecated
1227-
export abstract class ReflectiveInjector implements Injector {
1228-
abstract createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector;
1229-
static fromResolvedProviders(providers: ResolvedReflectiveProvider[], parent?: Injector): ReflectiveInjector;
1230-
// (undocumented)
1231-
abstract get(token: any, notFoundValue?: any): any;
1232-
abstract instantiateResolved(provider: ResolvedReflectiveProvider): any;
1233-
abstract get parent(): Injector | null;
1234-
static resolve(providers: Provider[]): ResolvedReflectiveProvider[];
1235-
static resolveAndCreate(providers: Provider[], parent?: Injector): ReflectiveInjector;
1236-
abstract resolveAndCreateChild(providers: Provider[]): ReflectiveInjector;
1237-
abstract resolveAndInstantiate(provider: Provider): any;
1238-
}
1239-
1240-
// @public @deprecated
1241-
export class ReflectiveKey {
1242-
constructor(token: Object, id: number);
1243-
// (undocumented)
1244-
readonly displayName: string;
1245-
static get(token: Object): ReflectiveKey;
1246-
// (undocumented)
1247-
id: number;
1248-
// (undocumented)
1249-
static get numberOfKeys(): number;
1250-
// (undocumented)
1251-
token: Object;
1252-
}
1253-
12541226
// @public
12551227
export abstract class Renderer2 {
12561228
abstract addClass(el: any, name: string): void;
@@ -1302,22 +1274,6 @@ export interface RendererType2 {
13021274
styles: string[];
13031275
}
13041276

1305-
// @public
1306-
export class ResolvedReflectiveFactory {
1307-
constructor(
1308-
factory: Function,
1309-
dependencies: ReflectiveDependency[]);
1310-
dependencies: ReflectiveDependency[];
1311-
factory: Function;
1312-
}
1313-
1314-
// @public
1315-
export interface ResolvedReflectiveProvider {
1316-
key: ReflectiveKey;
1317-
multiProvider: boolean;
1318-
resolvedFactories: ResolvedReflectiveFactory[];
1319-
}
1320-
13211277
// @public
13221278
export function resolveForwardRef<T>(type: T): T;
13231279

modules/benchmarks/src/old/di/di_benchmark.html

Lines changed: 0 additions & 25 deletions
This file was deleted.

modules/benchmarks/src/old/di/di_benchmark.ts

Lines changed: 0 additions & 132 deletions
This file was deleted.

packages/benchpress/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// Must be imported first, because Angular decorators throw on load.
1212
import 'reflect-metadata';
1313

14-
export {InjectionToken, Injector, Provider, ReflectiveInjector, StaticProvider} from '@angular/core';
14+
export {InjectionToken, Injector, Provider, StaticProvider} from '@angular/core';
1515
export {Options} from './src/common_options';
1616
export {MeasureValues} from './src/measure_values';
1717
export {Metric} from './src/metric';

packages/core/src/di/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,5 @@ export {ProviderToken} from './provider_token';
2626
export {ɵɵinject, inject, ɵɵinvalidFactoryDep} from './injector_compatibility';
2727
export {InjectOptions} from './interface/injector';
2828
export {INJECTOR} from './injector_token';
29-
export {ReflectiveInjector} from './reflective_injector';
3029
export {ClassProvider, ModuleWithProviders, ClassSansProvider, ImportedNgModuleProviders, ConstructorProvider, EnvironmentProviders, ConstructorSansProvider, ExistingProvider, ExistingSansProvider, FactoryProvider, FactorySansProvider, Provider, StaticClassProvider, StaticClassSansProvider, StaticProvider, TypeProvider, ValueProvider, ValueSansProvider} from './interface/provider';
31-
export {ResolvedReflectiveFactory, ResolvedReflectiveProvider} from './reflective_provider';
32-
export {ReflectiveKey} from './reflective_key';
3330
export {InjectionToken} from './injection_token';

0 commit comments

Comments
 (0)