MCPcopy Create free account
hub / github.com/PHPantom-dev/phpantom_lsp / runDemoAssertions

Function runDemoAssertions

examples/demo.php:5227–6197  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

5225// Run: php examples/demo.php
5226
5227function runDemoAssertions(): void
5228{
5229 // ── Body Return Type Inference ──────────────────────────────────────
5230 $factory = new ScaffoldingUntypedFactory();
5231 $pen = $factory->createPen();
5232 assert($pen instanceof Pen, 'createPen() must return Pen (inferred from body)');
5233 $tool = $factory->createTool(true);
5234 assert($tool instanceof Pen || $tool instanceof Pencil, 'createTool() must return Pen|Pencil');
5235
5236 // ── Return Type: static ─────────────────────────────────────────────
5237 $pen = Pen::make();
5238 assert($pen instanceof Pen, 'Pen::make() must return Pen');
5239
5240 $marker = Marker::make();
5241 assert($marker instanceof Marker, 'Marker::make() must return Marker (not Pen)');
5242
5243 $fluent = $marker->rename('Bold');
5244 assert($fluent instanceof Marker, 'Marker::rename() returns static, must stay Marker');
5245
5246 // ── Return Type: function ───────────────────────────────────────────
5247 $created = makePen();
5248 assert($created instanceof Pen, 'makePen() must return Pen');
5249
5250 $union = pickPenOrPencil();
5251 assert($union instanceof Pen || $union instanceof Pencil, 'pickPenOrPencil() must return Pen|Pencil');
5252
5253 $rock = pickRockOrBanana();
5254 assert($rock instanceof Rock || $rock instanceof Banana, 'pickRockOrBanana() must return Rock|Banana');
5255
5256 $user = createUser('Alice', 'alice@example.com');
5257 assert($user instanceof User, 'createUser() must return User');
5258
5259 // ── Chaining ────────────────────────────────────────────────────────
5260 $brush = new Brush();
5261 $sized = $brush->setSize('large');
5262 assert($sized instanceof Brush, 'Brush::setSize() returns static, must stay Brush');
5263 $styled = $sized->setStyle('pointed');
5264 assert($styled instanceof Brush, 'Brush::setStyle() returns static, must stay Brush');
5265
5266 $canvas = $brush->getCanvas();
5267 assert($canvas instanceof Canvas, 'Brush::getCanvas() must return Canvas');
5268
5269 $backToBrush = $canvas->getBrush();
5270 assert($backToBrush instanceof Brush, 'Canvas::getBrush() must return Brush');
5271
5272 $easel = $canvas->easel;
5273 assert($easel instanceof Easel, 'Canvas::$easel must be Easel');
5274
5275 // ── Fluent Model chains (static return) ─────────────────────────────
5276 $userObj = new User('Bob', 'bob@example.com');
5277 $renamed = $userObj->setName('Robert');
5278 assert($renamed instanceof User, 'User::setName() returns static, must stay User');
5279
5280 $timestamped = $userObj->setCreatedAt('2024-01-01');
5281 assert($timestamped instanceof User, 'HasTimestamps::setCreatedAt() returns static, must stay User');
5282
5283 // ── User method return types ────────────────────────────────────────
5284 $profile = $userObj->getProfile();

Callers 1

demo.phpFile · 0.85

Calls 15

makePenFunction · 0.85
pickPenOrPencilFunction · 0.85
pickRockOrBananaFunction · 0.85
createUserFunction · 0.85
assertRockFunction · 0.85
isRockFunction · 0.85
isNotRockFunction · 0.85
resolveFunction · 0.85
property_existsFunction · 0.85
appFunction · 0.85
is_subclass_ofFunction · 0.85
initPenFunction · 0.85

Tested by

no test coverage detected